2012-10-31 23 views
-2

我們如何提供單一的通用方法來收集命令按鈕。我有數字(0,1,2 ..)命令按鈕的集合,並且需要爲所有這些按鈕設置單個事件方法,因爲它們具有相似的行爲。收集命令按鈕的通用方法

+0

請的差異顯示你試過代碼 –

+0

您的意思是調用一個單一的方法每個按鈕? ?比如commandButtons1.Click + = new EventHandler(object sender,EventArgs e) –

回答

1

您可以通過Multicast Delegates

  1. 實現這個定義GenericButtonClick事件處理程序是這樣的:

    void OnGenenicButtonClick(object sender, EventArgs e) 
    { 
        var btn = sender as Button; 
        // ... do something ... 
    } 
    
  2. 以這種方式分配GenericButtonClick事件委託(例如Load事件處理程序):

    cmdBtn1.Click += OnGenenicButtonClick; 
    cmdBtn2.Click += OnGenenicButtonClick; 
    //... 
    

參考:

2

代表事件的模式使用兩個參數。一個是發件人,另一個是eventargs。您可以根據發件人做某件事,或者你可以把一些東西在標籤

void OnButtonClick(object sender, EventArgs e) 
     { 
      Button button = sender as Button; 

      object data = button.Tag; 
      DoSomething(data); 
     }