PDA

View Full Version : سوال: دسترسی به یک کنترل فقط با داشتن یک خاصیت



2ndesigner
یک شنبه 19 دی 1389, 22:34 عصر
می خواستم بدونم که چه جور میشه به یک کنترل دسترسی داشت در حالی که فقط یه خاصیت از اون رو دارم.

به طور مثال من 10 تا لیبل دارم و می خوام خاصیت text لیبلی که رنگ متنش قرمزه رو پیدا کنم

--- نمی خوام تمام لیبل ها بررسی بشه می خوام یه راست برم سراغ اون لیبلی که رنگ متن قرمز داره.



2ndesigner

Rejnev
یک شنبه 19 دی 1389, 23:45 عصر
TextBox c=this.Controls.OfType(typeof(TextBox)).Where(a=>a.ForeColor.Equals(Color.Red)).FirstOrDefault();

ببين با اين ميشه. يكم بالا پايينش كن. همينطوري نوشتمش. مثلا اون قسمت مقايسه رنگ فكر نكنم درست باشه.

2ndesigner
یک شنبه 19 دی 1389, 23:58 عصر
قسمت اولش مشکل داره

TextBox c=this.Controls.OfType(typeof(TextBox))

ali.rezaei7
دوشنبه 20 دی 1389, 00:28 صبح
با این کد مشکل برطرف میشه:

TextBox c = this.Controls.OfType<TextBox>().Where(a => a.ForeColor.Equals(Color.Red)).FirstOrDefault();
البته تو این روش هم تمام کنترل ها بررسی میشه، منتها توسط تابع هایی که تو کد استفاده شده.

mehdin69
دوشنبه 20 دی 1389, 00:35 صبح
دستور زیر رو روی رویداد کیلک label1 بنویس و بقیه label ها رو انتخاب کن و برای رویداد کلیکشون همون label1 رو انتخاب کن بعد برنامه رو اجرا کن ببین همین منظورت بود؟؟

if (sender is Label)
{
Label lbl = (Label)sender;
if (lbl.Text=="label1")
{
lbl.BackColor = Color.Red;
}
}

2ndesigner
دوشنبه 20 دی 1389, 00:50 صبح
ممنون از همگی

در ضمن mehdin69 جان ، شما منظورم رو بد متوجه شدی.

2ndesigner