ایجاد چند کنترل در زمان اجرا به همراه اونت به روش خیلی ساده
اگر به این موضوع نیاز دارید که در زمان اجرا برای مثال یک باتن ایجاد کنید که وقتی روی ان کلیک میشود یک کار خاصی انجام دهد پس این آموزش رو از دست ندید . . .
در این پست ساده ترین روش ایجاد کنترل به همراه اونت را یاد خواهید گرفت
مثال ما در این پروژه ایجاد 10تکست باکس در زمان اجرا است که همه انها اونت TextChanged را دارند
و وقتی متن هر یک از انها عوض میشود ، منجر میشود عنوان فرم به متن ان تکست باکس تغییر یابد
برای این کار یک باتن در فرم ایجاد کنید و در اونت کلیک ان این کد ها را وارد نمائید
private void button1_Click(object sender, EventArgs e)
{
TextBox txt;
for (int i = 1; i <= 10; i++) {
txt = new TextBox();
txt.Location = new Point(20,i*30);
this.Controls.Add(txt);
txt.TextChanged +=txt_TextChanged;
}
}
در کد بالا یک TextBox ایجاد میکنیم و سپس داخل حلقه به تعداد مورد نیاز ان را شبیه سازی و ویژگی های ان را تعریف میکنیم
سپس تک تک انها را توسط عبارت this.Controls.Add(txt) به فرم اصلی اضافه میکنیم
و سپس یک اونت برای تک تک انها با اسم نوشته شده ایجاد میکنیم
حالا کنترل های ما ایجاد شده و در فرم اصلی افزوده شده اند
حال باید تابع اونت انها را که در بالا تعریف شده است را ایجاد کنیم
private void txt_TextChanged(object sender, EventArgs e) {
}
حالا تابع ایجاد شد ولی این یک تابع است و تعداد تکست باکس های ما 10 تا !!!
این تابع مربوط به کدام تکست باکس است ؟!!
برای اینکه اینکه این تابع بر روی همه تکست باکس ها تنظیم شود و هم اینکه بتواند تشخصی بدهد که کدام تکست باکس است که الان از این تابع استفاده میکند باید کد داخل ان را به این صورت تعریف کنیم
private void txt_TextChanged(object sender, EventArgs e) {
TextBox txt = sender as TextBox;
this.Text = txt.Text;
}
در کد بالا ما گفته این که یک textBox تعریف کن و همچنین گفته ایم که ان را برابر هر تکس باکسی قرار بده که این اونت را فرواخوانی کرده
پس در واقع TextBox تعریف شده همان تکست باکسی است که در حال حاضر در حال استفاده از این اونت است
پس حال میتوانید اطلاعات ان را خوانده و یا مقدار ان را تغییر دهیم
خروجی برنامه به صورت زیر خواهد بود
بعد از کلیک بر روی CreateTextBoxes
و با نوشتن در هر یک از تکست باکس ها