PDA

View Full Version : سوال: کارباباتون ها



barnamenevisy
سه شنبه 13 مهر 1389, 08:00 صبح
سلام دوستان می خواستم ببینم زمانی که ماآرایه ای از باتون هارارودرزمان اجرا ایجادمی کنیم چگونه می تونیم رویداد یکی از اونها رو به دلخواه در نظر بگیریم مثلا باکلیک کردن روی اون باتون رنگ اون باتون عوض بشه

hamid.shekasteh
سه شنبه 13 مهر 1389, 08:47 صبح
اول یه متد بنویسید مثل این:


private void ChangeColor(object sender, EventArgs e)
{...}

بعد زمانی که دکمه مثلا با نام btn را در RunTime ایجاد کردیداینو بنویسید:


btn.Click += new System.EventHandler(ChangeColor);

در نهایت به کنترلهای فرم اضافه کنید:


this.Controls.Add(this.btn);

barnamenevisy
سه شنبه 13 مهر 1389, 09:55 صبح
دوست عزیز من میگم میخوام رنگ خود باتون رو عوض کنم آخه تو تابع اولی که نوشتی چه جوری این کار رو بکنم...
من می خواستم به روداد باتون های که با آرایه درست کردم بر اساس اندیس اون باتون دسترسی داشته باشم

barnamenevisy
سه شنبه 13 مهر 1389, 09:56 صبح
اول یه متد بنویسید مثل این:


private void ChangeColor(object sender, EventArgs e)
{...}

بعد زمانی که دکمه مثلا با نام btn را در RunTime ایجاد کردیداینو بنویسید:


btn.Click += new System.EventHandler(ChangeColor);

در نهایت به کنترلهای فرم اضافه کنید:


this.Controls.Add(this.btn);




دوست عزیز من میگم میخوام رنگ خود باتون رو عوض کنم آخه تو تابع اولی که نوشتی چه جوری این کار رو بکنم...
من می خواستم به رویداد باتون های که با آرایه درست کردم بر اساس اندیس اون باتون دسترسی داشته باشم

hamid.shekasteh
چهارشنبه 14 مهر 1389, 19:11 عصر
اول در مورد سوالتون : برای دسترسی به دکمه بر اساس Index در یک آرایه(اگر اسم آرایه buttuns باشه):


buttuns[0].BackColor = Color.Blue;

اما بهتره که یه همچین کدی بنویسید، مثلا در لود فرم :



for (int i = 1; i < 4; i++)
{
Button btn = new Button();
btn.Name = "btn" + i.ToString();
//btn.Top = i * 50 + 50; btn.Left = 100;
btn.Text = i.ToString();
btn.Click += new System.EventHandler(ChangeColor);

this.Controls.Add(btn);




برای دسترسی به شی ای که روی آن کلیک شده بهتره از خاصیت Name استفاده کنید.این کد رو در نظر بگیرید:



private void ChangeColor(object sender, EventArgs e)
{
if (sender is Button)
{
Button btn = (Button)sender;

if (btn.Name=="btn1")
btn.BackColor = Color.Brown;
}

}

FastCode
چهارشنبه 14 مهر 1389, 19:54 عصر
لطفاً در استفاده از space دقت فرمایید.
داشتم فکر میکردم یه تاپیک توی بخش سی شارپ با پدر برنامه نویسها چه کار داره؟

morrteza323
چهارشنبه 14 مهر 1389, 21:16 عصر
دوست عزیز یه نگاهی به این تاپیک بنداز شاید کمک کنه
http://www.barnamenevis.org/forum/showthread.php?t=241590

mohsen_csharp
پنج شنبه 15 مهر 1389, 00:19 صبح
پست شماره 5 جواب خوبیه ولی بهتر می تونه این باشه که اندیس هر دکمه در tag همان دکمه قرار بدیم و به راحتی ازش استفاده کنیم