2009-05-20 56 views
1

這是我想要這樣做的主要jist。發生事件時點擊了哪個對象?

我在表格初始化函數創建了兩個按鈕,如下圖所示

public Form1() 
    { 
     InitializeComponent(); 

     Button b1 = new Button(); 
     b1.Parent = this; 
     b1.Name = "btnA"; 
     b1.Text = "Button A"; 
     b1.Click += new EventHandler(button_Click); 
     b1.Show(); 

     Button b2 = new Button(); 
     b2.Parent = this; 
     b2.Name = "btnB"; 
     b2.Text = "Button B"; 
     b2.Click += new EventHandler(button_Click); 
     b2.Show(); 
    } 

    private void button_Click(object sender, EventArgs e) 
    { 
     MessageBox.Show("Button A or Button B was Clicked?"); 
    } 

我需要知道已被點擊了哪個按鈕,顯然操縱該按鈕被點擊。

即使是像更改點擊按鈕的文本。

Im preaty確保我們可以使用對象發件人來訪問事件被觸發的按鈕,但不知道如何使用發件人來操縱正確的按鈕。

任何指示或幫助將apreciated感謝

回答

4

只投senderButton

private void button_Click(object sender, EventArgs e) 
{ 
    Button clicked = (Button) sender; 
    MessageBox.Show("Button " + clicked.Name + " was Clicked."); 
} 
+0

謝謝..和大壩很快:D – 2009-05-20 09:13:41

1

sender參數是引發事件的對象:

Button button = sender as Button; 
if(button != null) 
{ 
    MessageBox.Show("Button " + button.Name + " was clicked"); 
} 
else 
{ 
    MessageBox.Show("Not a button?"); 
} 
+0

謝謝你。解決了一個問題的噩夢 – 2009-05-20 09:14:06

0

發件人對象會給你發送消息的對象。你可以將它投射到一個按鈕上。

var clickedButton = (Button) sender;