2012-02-25 43 views
1

點擊我有每個鏈接到相同的事件處理程序的按鈕的2D陣列:檢測哪個按鈕從陣列

nb.Click += new EventHandler(this.nb_click); 
    b[i][j] = nb; 
    this.Controls.Add(b[i][j]); 

    private void nb_click(object sender, EventArgs e) 

我希望它是使得nb_click檢測哪個按鈕被按下。有沒有辦法解決這個問題?

解決方案:我必須先設置按鈕的名稱,在這種情況下是nb.Name = ... 謝謝,我剛剛意識到這一點。

+2

請不要用「C#:」等來標題。這就是標籤的用途。 – 2012-02-25 22:13:29

+0

沒有在C#上試過這個,但發件人參數不是觸發事件的按鈕,(它在大多數其他GUI /事件環境中)? – 2012-02-25 22:16:21

+0

誰記得VB6中的控件數組?美好的過去... – 2012-02-25 23:11:21

回答

2

在事件處理函數中,sender參數將是對被單擊的按鈕的引用。

4

這就是sender參數用於EventHandler的原因。因此,只需將此按鈕的唯一ID關聯起來,以便您可以識別它。然後將sender對象參數轉換爲一個按鈕並查找id。然後照此行事。