PDA

View Full Version : سوال: مشكل با ImageList



el_abdollahi
شنبه 12 بهمن 1387, 12:52 عصر
با سلام
من ميخوام نام يه ImageList رو بگيرم و كنترل متناظر با اون رو بدست بيارم ، واسه اين كار از اين دستور استفاده مي كنم:

ImageList tmp=(ImageList) this.components.components[strimglst];ولي با وجود اينكه ImageList اي با ابن نام وجود داره ولي Null برميگردونه.
اگر به جاي نام ، انديس بهش بدم كنترل رو پيدا ميكنه ولي نام اون رو Null نشون ميده!!!
اصلا توي پروپرتي هاش هيچ جا نشوني از اسمش نيست!!!!
فقط پروپرتي tmp.site.name داره كه اون هم null هست!!!!
به نظر شما چه كار كنم؟

Copricorn
شنبه 12 بهمن 1387, 15:26 عصر
سلام
از این کد میتونید استفاده کنید:


Control[] ctrl;
ctrl=this.Controls.Find("strimagelist",false );
ImageList imgl=(ImageList)ctrl[0];

el_abdollahi
شنبه 12 بهمن 1387, 15:38 عصر
ممنون. ولي اين يكي اصلا syntax error ميده. به اين علت كه ImageList از اين كنترل هايي هست كه توي فرم نشون داده نميشه و توي سيني فرم ميفته.....

ASKaffash
شنبه 12 بهمن 1387, 15:41 عصر
سلام
ببین این کد بدرت میخوره ؟


private void button1_Click(object sender, EventArgs e)
{
Finder(this.imageList1);
}
private void Finder(ImageList IL)
{
List<object> L = new List<object>();
foreach (Control c in this.Controls)
{
try
{
object o = c.GetType().GetProperty("ImageList").GetValue(c, null);
if ((ImageList)o == IL)
{
L.Add(c);
this.listBox1.Items.Add(c.ToString());
}
}
catch { }
}
}

el_abdollahi
شنبه 12 بهمن 1387, 15:54 عصر
ممنون.ولي فكر نكنم.
اين تابع مشخص ميكنه كه كنترل هايي كه ImageList دارند به كدوم ImageList بايند شدن.(درسته؟)
ولي من اين رو نميخوام.
من ميخوام يه ImageList رو به يه دكمه بايند كنم و تنها اسم اون ImageList رو به صورت يه رشته دارم.

ASKaffash
شنبه 12 بهمن 1387, 16:12 عصر
سلام
اگر برخورد تنها رشته ای است این لینک بدرد بخور است :
http://barnamenevis.org/forum/showpost.php?p=538061&postcount=88