PDA

View Full Version : handel کردن event آبجکتهایی که توسط کد در runtime ساخته می شوند. چطوری میشه؟؟



pesare_ariyayi
یک شنبه 25 آذر 1386, 07:05 صبح
من یک آرایه textbox به تعداد index ای که کاربر می خواد درست می کنم, بعد با یک حلقه for دستور نمایش این آرایه رو می دم. به طور کل منظورم اینه که textbox ها در runtime ساخته می شن.
حالا چیزی که من می خوام اینه که واسه همه ی این textboxها موقع textChanged event یک method فراخونی کنم.
چیزی که نمی دونم اینه که چطور واسه textboxای که هنوز ساخته نشده event handler بنویسم یا به بیانی دیگه چطور همه ی این textboxهایی که دارن ساخته می شن رو به یک event handler متصل کنم!!!
با تشکرات قلبی

sinpin
یک شنبه 25 آذر 1386, 07:58 صبح
من یک آرایه textbox به تعداد index ای که کاربر می خواد درست می کنم, بعد با یک حلقه for دستور نمایش این آرایه رو می دم. به طور کل منظورم اینه که textbox ها در runtime ساخته می شن.
حالا چیزی که من می خوام اینه که واسه همه ی این textboxها موقع textChanged event یک method فراخونی کنم.
چیزی که نمی دونم اینه که چطور واسه textboxای که هنوز ساخته نشده event handler بنویسم یا به بیانی دیگه چطور همه ی این textboxهایی که دارن ساخته می شن رو به یک event handler متصل کنم!!!
با تشکرات قلبی

خودتون دستی (با کدنویسی) باید ایونت رو فعال کنید :


private void Form1_Load(object sender, EventArgs e)
{
TextBox tb1 = new TextBox();
TextBox tb2 = new TextBox();
tb1.Location = new Point(10, 20);
tb2.Location = new Point(10, 60);
this.Controls.Add(tb1);
this.Controls.Add(tb2);
tb1.TextChanged+=new EventHandler(tb1_TextChanged);
tb2.TextChanged+=new EventHandler(tb1_TextChanged);
}

void tb1_TextChanged(object sender, EventArgs e)
{
MessageBox.Show(((TextBox)sender).Text);
}

Mahdi.Kiani
یک شنبه 25 آذر 1386, 08:07 صبح
خودتون دستی (با کدنویسی) باید ایونت رو فعال کنید :


private void Form1_Load(object sender, EventArgs e)
{
TextBox tb1 = new TextBox();
TextBox tb2 = new TextBox();
tb1.Location = new Point(10, 20);
tb2.Location = new Point(10, 60);
this.Controls.Add(tb1);
this.Controls.Add(tb2);
tb1.TextChanged+=new EventHandler(tb1_TextChanged);
tb2.TextChanged+=new EventHandler(tb1_TextChanged);
}

void tb1_TextChanged(object sender, EventArgs e)
{
MessageBox.Show(((TextBox)sender).Text);
}
ایشون خواسته بودند که همه را با یه حلقه ایجاد کنند نه اینکه برای هر textBox کد تکراری بنویسند
پاسخ ضمیمه شده است

sinpin
یک شنبه 25 آذر 1386, 08:24 صبح
ایشون خواسته بودند که همه را با یه حلقه ایجاد کنند نه اینکه برای هر textBox کد تکراری بنویسند
پاسخ ضمیمه شده است
:لبخندساده:
در مثال مناقشه نیست دوست عزیز.

اَرژنگ
یک شنبه 25 آذر 1386, 08:44 صبح
به جایه یک آرایه textbox از یک لیست textbox استفاده کنید.

مثال ضمیمه است.