PDA

View Full Version : کدوم button کلیک شده



sh-eng
چهارشنبه 11 آبان 1390, 02:21 صبح
سلام
من 2 تا button دارم تو برنامم
حالا می خوام توی یه تابع از برنامه چک کنم که کدوم button کلیک شده کسی می دونه؟

omidh2007
چهارشنبه 11 آبان 1390, 02:51 صبح
یه فرم میسازی و توش دو تا Button میذاری . button1 , button2 . اینم کد های گرفتن نام کنترل



private void Form1_Load(object sender, EventArgs e)
{
button1.Click += new EventHandler(check);
button2.Click += new EventHandler(check);
}

public void check( object sender , EventArgs e )
{
string ctrlName = ((Control)sender).Name;
MessageBox.Show(ctrlName);
}


:چشمک:

mahdieh5
چهارشنبه 11 آبان 1390, 13:55 عصر
یه فرم میسازی و توش دو تا Button میذاری . button1 , button2 . اینم کد های گرفتن نام کنترل



private void Form1_Load(object sender, EventArgs e)
{
button1.Click += new EventHandler(check);
button2.Click += new EventHandler(check);
}

public void check( object sender , EventArgs e )
{
string ctrlName = ((Control)sender).Name;
MessageBox.Show(ctrlName);
}


:چشمک:

باتشکر
کار تابع EventHandler چیه؟
اگر در مورد تابع check هم توضیح دهید ممنون میشم.

omidh2007
چهارشنبه 11 آبان 1390, 15:33 عصر
EventHandler در واقع یه delegate ( اشاره گر به تابعه) که یه تابع(متد) رو به یه Event مرتبط میکنه . یعنی وقتی بر فرض مینویسیم :
button1.Click += new EventHandler(check); یعنی وقتی کاربر روی button1 کلیک کرد ، تابع check اجرا بشه .
و فرم کلیش به صورت ControlName.Event += new EventHandlet(Function name) هستش .
تابع Check یه تابعه با دو تا آرگومان sender , e که خود به خود توسط EventHandler بهش فرستاده میشه . و نام کنترل مربوطه رو بر میگردونه .
برای آشنایی بیشتر با delegate ها ، به این صفحه مراجعه کن => http://irmeta.com/meta/index.php?topic=5048.0
GoodLuck