-2

我们如何为命令按钮的集合提供单一的通用方法。我收集了 digit(0, 1,2..) 命令按钮,并且需要为所有这些按钮提供单一事件方法,因为它们具有相似的行为。

4

2 回答 2

2

事件委托的模式是使用两个参数。一个是发送者,另一个是事件参数。你可以根据发件人做一些事情,或者你可以在标签中放一些东西

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

            object data = button.Tag;
            DoSomething(data);
        }
于 2012-10-31T02:59:57.797 回答
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;
    //...
    

参考:

于 2012-10-31T03:23:17.450 回答