PDA

View Full Version : سوال: استفاده از یه متغیر در اسم یه کنترل



Arashdn
پنج شنبه 16 شهریور 1391, 19:43 عصر
سلام
دوستان چطور میشه از یه متغیر در اسم یه کنترل استفاده کرد

مثلا تو دستور label1.Text=""
چطور میشه اون عدد 1 رو با یه متغیر بدیم؟
سعی کردم با دستور زیر برم
int ID=1;
Label label = (Label)Controls["label" + ID.ToString()];
label.Text = "Arash";

ولی برنامه موقعی که میخواد لیبل رو تغییر بده ارور زیر رو میده
object reference not set to an instance of object
کسی دلیل رو میدونه؟
روش بهتری برای انجام این کار هست؟
ممنون

tooraj_azizi_1035
پنج شنبه 16 شهریور 1391, 22:25 عصر
Controls[String.Format("label{0}",ID)]

Arashdn
پنج شنبه 16 شهریور 1391, 22:37 عصر
Controls[String.Format("label{0}",ID)]
ممنون از راهنمای تون

متاسفانه بازم همون ارور رو داد ..

harani
پنج شنبه 16 شهریور 1391, 23:22 عصر
خب کدتون اشتباه دیگه چرا که رفرنسی برای لیبل تعریف نکردین .

از کد زیر استفاده کنید .


int ID=1;//a
this.Controls["label" + ID].Text = "Arash";//a


اگهم کنترلت تو group box یا panel هستش به جای this از نام اونها استفاده کن . موفق باشی .

Arashdn
جمعه 17 شهریور 1391, 21:22 عصر
اگهم کنترلت تو group box یا panel هستش به جای this از نام اونها استفاده کن . موفق باشی .
ممنون
ایراد دقیقا همین بود .....