2016年4月20日 星期三

共用Click事件

source : source


此例的功能是共用同一個Click事件,當按下button時,顯示該button的Text文字
如果一個按鈕一個事件的話,程式碼就是像下面那麼長,本例使用三個按鈕,
有15行
private void button1_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
MessageBox.Show(btn.Text);
}
private void button2_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
MessageBox.Show(btn.Text);
}
private void button3_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
MessageBox.Show(btn.Text);
}

如果我們共用同一個click事件,程式碼只有5行
private void button1_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
MessageBox.Show(btn.Text);
}
為了方便使用,我在InitializeComponent(); 下加上以下程式碼
button1.Click += new System.EventHandler(button1_Click);//按下button1觸發button1_Click
button2.Click += new System.EventHandler(button1_Click);//按下button2觸發button1_Click
button3.Click += new System.EventHandler(button1_Click);//按下button3觸發button1_Click
以下為此範例之完整原始碼
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.ComponentModel;  
  4. using System.Data;  
  5. using System.Drawing;  
  6. using System.Linq;  
  7. using System.Text;  
  8. using System.Windows.Forms;  
  9.   
  10. namespace ex11  
  11. {  
  12.     public partial class Form1 : Form  
  13.     {  
  14.         public Form1()  
  15.         {  
  16.             InitializeComponent();  
  17.             button1.Click += new System.EventHandler(button1_Click);//按下button1觸發button1_Click  
  18.             button2.Click += new System.EventHandler(button1_Click);//按下button2觸發button1_Click  
  19.             button3.Click += new System.EventHandler(button1_Click);//按下button3觸發button1_Click  
  20.         }  
  21.   
  22.         private void button1_Click(object sender, EventArgs e)  
  23.         {  
  24.             Button btn = (Button)sender;  
  25.             MessageBox.Show(btn.Text);  
  26.         }  
  27.         //private void button2_Click(object sender, EventArgs e)  
  28.         //{  
  29.         //    Button btn = (Button)sender;  
  30.         //    MessageBox.Show(btn.Text);  
  31.         //}  
  32.         //private void button3_Click(object sender, EventArgs e)  
  33.         //{  
  34.         //    Button btn = (Button)sender;  
  35.         //    MessageBox.Show(btn.Text);  
  36.         //}  
  37.     }  
  38. }  

沒有留言:

張貼留言