دوست عزیز بهتره شما کنترا ها را به صورت استا روی فرم قرار ندی تا در زمان ران تایم پروژتو خوب Handle کنی
منظورم اینه که شما اول از همه سعی کن اشیا را به صورت داینامیک تولید کن روی فرم بعد دیگه فکر نکنم مشکلی داشته باشی
به مثال زیر دقت کن :
private void Form1_Load(object sender, EventArgs e)
{
//making dynamic buttons
Button[] btns = new Button[10];
int btnXPositionOnForm = 10;
int btnYPositionOnForm =10;
for (int i = 0; i < btns.Length; i++)
{
btns[i] = new Button();
btns[i].Text = "btn#: " + i.ToString();
btns[i].Click += new EventHandler(btn_click);
btns[i].Location = new Point(btnXPositionOnForm, btnYPositionOnForm);
btnYPositionOnForm += btns[i].Height + 10;
}
this.Controls.AddRange(btns);
}
private void btn_click(object sender, EventArgs e)
{
// get to know which button is pressed.
Button temp = (Button)sender;
MessageBox.Show(temp.Text);
}
فکر کنم بتونی کد های این مثال را متناسب کار خودت تغییر بدی
در ضمن اگه بخوای کار قبلی ات را انجام بدی می تونی از Generic به این صورت که حرفه ای تر هم است استفاده کنی
foreach (var btn in this.Controls.OfType<TextBox>())
{
btn.Text = "something";
}
مزیتش اینه که کار اضافه انجام نمیدی ، یعنی با دستور IF دیگه شرط نمی کذاری
موفق باشی