PDA

View Full Version : مبتدی: تغییر رنگ کلیه Button های یک فرم.



kamiloted
یک شنبه 06 تیر 1395, 17:20 عصر
سلام دوستان.
بنده یک فرم دارم که روی اون 3 عدد panel قرار داده ام.
و روی هر پنل 120 تا دکمه قرار داده ام. و میخوام این 360 تا باتون را با یک کلیک بر روی باتون رنگی که قرار داه ام تغییر رنگ بدم.

این کد رو نوشتم اما اعمال نمیشه علتش هم اینه که اون دکمه ها روی پنل هستن.

foreach (var btn in this.Controls)
{

if (btn.GetType() == typeof(Button))
{

((Button)btn).BackColor = System.Drawing.Color.Black;
}
}


حالا کسی کدی داره من این کا رو انجام بدم؟
اگه بزارید ممنون میشم.

...AJN
یک شنبه 06 تیر 1395, 17:50 عصر
سلام دوست گرامی از این کد استفاده کن

foreach (Control item in this.Controls) {
if(item is Button)
{
item.BackColor = Color.Red;
}
}

kamiloted
یک شنبه 06 تیر 1395, 21:05 عصر
سلام دوست گرامی از این کد استفاده کن

foreach (Control item in this.Controls) {
if(item is Button)
{
item.BackColor = Color.Red;
}
}
دوست عزیز ممنونم.اینم بی تاثیره.تفاوتی با کد خودم نداره

...AJN
یک شنبه 06 تیر 1395, 21:56 عصر
دوست عزیز ممنونم.اینم بی تاثیره.تفاوتی با کد خودم نداره

دوست گرامی پیش از این که کد رو برای شما بزنم یکبار تست کردم، هروقت بخوام پاسخ دوستان بدم پیش از پاسخ ، کد رو تست میکنم که دوستان اذیت نشن.....


اگه میخوای نمونه پروژه آپ کنم

ژیار رحیمی
یک شنبه 06 تیر 1395, 22:12 عصر
چون کنترل های Button شما داخل Panel قرار داره باید کنترل های داخل Panel رو پیمایش کنی.کد بالا کنترهای سطح فرم رو جستجو میکنه

foreach (var item in this.Controls.OfType<Panel>())
foreach (var c in item.Controls.OfType<Button>())
c.BackColor = Color.Red;