PDA

View Full Version : پیدا کردن یک کنترل



JBlack
دوشنبه 01 خرداد 1391, 22:22 عصر
سلام
میخواهم picbox23 را پیدا کنم:


i=23;
PictureBox pib = this.Controls.Find("picbox"+ i.ToString(), true)[0] as PictureBox;

چون میخوام image را عوض کنم
اما pib را Null برمیگرداند؟؟!!!

parvizwpf
دوشنبه 01 خرداد 1391, 22:32 عصر
به نطرم لزومی به گرفتنش به این صورت نباشه . دقیقا بگو چیکار میخوای کنی؟

JBlack
دوشنبه 01 خرداد 1391, 22:42 عصر
من 20 تا ProgressBar و PictureBox دارم میخوام در یک حلقه مثلا Value تمام ProgressBar را صفر کنم.

parvizwpf
دوشنبه 01 خرداد 1391, 22:47 عصر
اگه دقیق تر بگی ممنونم. چیزی نفهمیدم.

JBlack
دوشنبه 01 خرداد 1391, 23:11 عصر
من 20 تا ProgressBar دارم به نامهای pbar01 تا pbar20
حالا میخوام در یک حلقه Value تمام ProgressBar را صفر کنم.
یعنی نمیخواهم تک تک مقدارشون را صفر کنم و مثل یک آرایه همه را صفر کنم

us1234
دوشنبه 01 خرداد 1391, 23:18 عصر
من قبلا از این جور کار ها کردم
من کل فرم را جستجو می کردم و با دستور typeof هر کامپونت را مقایسه می کردم با اون کامپونتی که نیاز داشتم بعد اگه مثلا یه تکس باکس پیدا میشد می رفتم سراغ اسمش.

فرید نجفلو
دوشنبه 01 خرداد 1391, 23:19 عصر
دوست عزیز من کد شما رو تست کردم مشکلی نبود شاید نام کنترل رو اشتباه داده باشید
به هر حال این کار رو هم می تونید بکنید:

foreach (Control ctrl in this.Controls)
if (ctrl is PictureBox)
((PictureBox)ctrl).Image = null;

JBlack
دوشنبه 01 خرداد 1391, 23:41 عصر
یعنی در کد خودم

i=23;
PictureBox pib = this.Controls.Find("picbox"+ i.ToString(), true)[0] as PictureBox;

شما تریس کردین مقدار pib برابر null نبود؟

mehdi.mousavi
سه شنبه 02 خرداد 1391, 00:16 صبح
دوست عزیز من کد شما رو تست کردم مشکلی نبود شاید نام کنترل رو اشتباه داده باشید به هر حال این کار رو هم می تونید بکنید:

foreach (Control ctrl in this.Controls)
if (ctrl is PictureBox)
((PictureBox)ctrl).Image = null;


سلام.
این کارو با Linq می تونید در یک خط انجام بدید:

this.Controls.Cast<Control>().OfType<PictureBox>().ToList().ForEach(p => p.Image = null);

موفق باشید.