2012-12-12 45 views
0

我已經創建了一個我用4 buttons創建的表單,它將修改listView,每個表單都有其自己的點擊事件。我想知道是否可以避免在每個按鈕中添加方法調用,如果它們是在按鈕完成其單擊事件後可用的事件?來自共享事件的更新表

這樣做的原因是這樣我可以更新listView這將反過來更新webBrowser

回答

1

下面是其導致「1」,然後點擊按鈕1時「所有」正被顯示給用戶的示例,「2」,然後選擇「全部」,當按鈕2被點擊等等等等

注:你不想做這樣的 - 看評論

public Form1() 
    { 
     InitializeComponent(); 

     foreach(var b in Controls.OfType<Button>()) 
      b.Click += new EventHandler(AnyButton_Click); 
    } 

    void AnyButton_Click(object sender, EventArgs e) 
    { 
     MessageBox.Show("all"); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     MessageBox.Show("1"); 
    } 

    private void button3_Click(object sender, EventArgs e) 
    { 
     MessageBox.Show("3"); 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     MessageBox.Show("2"); 
    } 
+0

它作爲剛剛加入簡單第二次點擊事件?我怎麼能(這是否)保證了這些命令的命令? – Sayse

+1

@Sayse你真的不應該這樣做,依靠事件處理程序的排序(儘管事實上他們的確有訂單)是不好的做法。如果你想依賴它,你應該在每個按鈕特定處理程序的末尾調用通用方法。以這種方式維護代碼會容易得多。 – Servy

+0

@Servy - 感謝您的建議..這些事件被調用的順序與其功能無關,因此我只需咬住CopyNPaste項目符號,謝謝! Nathan接受了你的答案,因爲它確實做了我希望做的事情。 – Sayse