PDA

View Full Version : نحوه ایجاد تغییرات در چند شی مشابه



mahmoud.mirghafari
پنج شنبه 14 اسفند 1393, 17:26 عصر
سلام
روز همه تون خوش...
من الان یه مدته میخوام یه برنامه بنویسیم که از کاربر یه عدد بگیره و به همون تعداد button ایجاد کنه...
که این مورد رو با کد زیر نوشتم :





for (int t = 0; t < 10; t++)
{
Button btn= new Button();
btn.Location = new Point(x, y);
btn.Name = "btn" + t.ToString();
btn.AutoSize = true;
btn.Click += new EventHandler(btn_Click);
this.Controls.Add(btn);
}





اما مشکل اصلی من اینه که برنامه باید هر از گاهی همه button ها رو چک کنه و نسبت به txet موجود در هر button (و یه سری چیزای دیگه) ،یک سری کارا رو روی اونا انجام بده (مثلا تغییر رنگ، تغییر متن، اندازه و...)
در واقع میخوام بدونم آیا راهی هست که بتونم با ایجاد یه حلقه همه button ها رو چک کرده و تغییرات موردنظر رو اعمال کنه؟؟

بابت وقتی که برام گذاشتین بسیار ممنون...

ravaei
پنج شنبه 14 اسفند 1393, 19:40 عصر
درود ...

اول این که خط btn.click رو به صورت زیر تغییر بده :


btn.Click += new System.EventHandler(this.btn_click);

و تابع کلیک button هارو به این شکل تعریف کن .


private void btn_click(object sender, EventArgs e)
{

}




خوب حالا واسه اینکه button هات رو چک کنی نیاز داری همهء button هارو در لحظه ای که ایجاد میشن بریزی تو یه آرایه و تغیراتی که رو button ها ایجاد میشه رو وارد اون button هم بکنی پس اولا در حلقه ای که نوشتی باید یه آرایه از button ها بگیری که button های ساخته شده رو بریزی توش :


for (int t = 0; t < 10; t++)
{

Button btn = new Button();
btn.Location = new Point(x, y);
btn.Name = "btn" + t.ToString();
btn.AutoSize = true;
btn.Click += new EventHandler(btn_Click);
this.Controls.Add(btn);

btns[t] = btn;
btns.Text = i.ToString;


}






و تو تابع خود button ها هم اینو بنویس :




private void btn_click(object sender, EventArgs e)
{
Button selBtn = (mybtn)sender;
int i = Convert.Toint32(selbtn.Text);
btns[i] = selbtn;


}


خوب حالا شما به هر جا خاستی button هاتو بررسی کنی btns رو بررسی کن ...

در ضمن من vs نداشتم دستی نوشتم شاید بعضی جاها اشکال داشته باشه ، ترجیحا کد هارو خودت بزن ... موفق باشی :لبخندساده:

mahmoud.mirghafari
پنج شنبه 14 اسفند 1393, 20:01 عصر
داداش دمت گرم...
الان چند مدت بود گیر همین یه ذره بودم.........
خلاصه خیر دنیا و آخرت ببینی........... 3> 3> 3> 3> 3> 3> :لبخند: