سلام
متاسفانه اکثر دوستان برای یادگیری برنامه نویسی رجوع میکنند به کتاب های ایشون و کاملاً کتاب های مرجع رو فراموش می کنند. برای یاد گیری اصولی برنامه نویسی حتما کتب مرجع و اصلی رو داشته باشید.
این سوالی که شما مطرح کردید مربوط میشه به کتاب های 511 و 505 مایکروسافت.
و اما سوال شما :
فرض کنید موقع اجرای فرم می خواهید یک Button و یک TextBox ساخته بشه و زمانیکه بر روی Button مورد نظر کلیک شد متن Hello در TextBox به نمایش در بیاد.
در رویداد form Load از کد زیر استفاده کنید
// Button
Button b = new Button(); // ساخت یک شی
b.Text = "Show"; // متن
b.Location = new Point(20, 20); // محل قرار گیری کنترل
this.Controls.Add(b); // اضافه کردن کنترل ایجاد شده در فرم
// TextBox
TextBox t = new TextBox();
t.Name = "textBox1";
t.Location = new Point(20, 60);
this.Controls.Add(t);
کد بالا کنترل های مورد نظر رو ایجاد میکنه اما شما نمیتونید به هیچ یک از رویداد های کنترل ساخته شده دسترسی داشته باشید. برای این کار شما باید از طریق delegate به رویداد موزد نظر اشاره کنید.
//delegate
b.MouseClick += new MouseEventHandler (b_MouseClick);
}
void b_MouseClick(object sender, MouseEventArgs e)
{
Controls["textBox1"].Text = "hello";
}
و این میشه کل کد شما
private void Form2_Load(object sender, EventArgs e)
{
// Button
Button b = new Button(); // ساخت یک شی
b.Text = "Show"; // متن
b.Location = new Point(20, 20); // محل قرار گیری کنترل
this.Controls.Add(b); // اضافه کردن کنترل ایجاد شده در فرم
// TextBox
TextBox t = new TextBox();
t.Name = "textBox1";
t.Location = new Point(20, 60);
this.Controls.Add(t);
//delegate
b.MouseClick += new MouseEventHandler (b_MouseClick);
}
void b_MouseClick(object sender, MouseEventArgs e)
{
Controls["textBox1"].Text = "hello";
}
موفق و پیروز باشید.