PDA

View Full Version : سوال: تغییر رنگ کننترلها با برقراری شرط



A.K.5858
دوشنبه 01 بهمن 1397, 14:31 عصر
سلام من برنامه نوشتم که اگه هر موقع به فرم جدید اومد اگه لیبل های داخل یک گروپ باکسی عددش 14 یا بالا 14 بود بک کالرش رو سبز کن و اگر نه قرمز بعد بعضی موقع ها درست اجرا میشه بعضی وقت ها فقط برای اولین یبل اجرا میشه چی کار کنم؟


اینم کدش: اینم عکسش:(قبل از اجرای هست)
149658 149659

farhad_shiri_ex
دوشنبه 01 بهمن 1397, 14:56 عصر
سلام من برنامه نوشتم که اگه هر موقع به فرم جدید اومد اگه لیبل های داخل یک گروپ باکسی عددش 14 یا بالا 14 بود بک کالرش رو سبز کن و اگر نه قرمز بعد بعضی موقع ها درست اجرا میشه بعضی وقت ها فقط برای اولین یبل اجرا میشه چی کار کنم؟


اینم کدش: اینم عکسش:(قبل از اجرای هست)
149658 149659

تو چه متدی این حلقه را call میکنید؟
بعد همیشه اعداد label ها اعشاری دارند که double.Parse استفاده کردید! پس چرا با یک عدد رند غیر اعشار مقایسه کردید (چون کامپایلر خودش براتون یک Cast ضمنی انجام میده روی 14 استفاده شده در شرط و تبدیل به اعشاری میکنه) بنابراین اگر عدد رند غیر اعشار در label باشه ممکن که شرط نقض بشه!

alexmcse
جمعه 12 بهمن 1397, 01:30 صبح
سلام من برنامه نوشتم که اگه هر موقع به فرم جدید اومد اگه لیبل های داخل یک گروپ باکسی عددش 14 یا بالا 14 بود بک کالرش رو سبز کن و اگر نه قرمز بعد بعضی موقع ها درست اجرا میشه بعضی وقت ها فقط برای اولین یبل اجرا میشه چی کار کنم؟


اینم کدش: اینم عکسش:(قبل از اجرای هست)
149658 149659


for (int i = 0; i < groupBox1.Controls.Count ; i++) {
if (groupBox1.Controls[i] is Label)
{
if (Convert.ToInt32(groupBox1.Controls[i].Text) >= 14)
{
groupBox1.Controls[i].BackColor = Color.Green;


}
else groupBox1.Controls[i].BackColor = Color.Red;
}
}