如何让两个(​​或更多)控件共享同一个事件处理程序

时间:2014-12-12 12:56:12

标签: c# user-interface windows-forms-designer

我似乎无法在网上找到任何东西,它可能是一个简单的解决方案。任何帮助都会很棒!

    private void radioButtonout_CheckedChanged(object sender, EventArgs e)
    {
        b = 128;
        a = (b | dir);
        dir = Convert.ToByte(a);
    }

我想要另一个radiobutton是完全重复的而不重写代码,我如何获得另一个单选按钮来使用此事件处理程序?

2 个答案:

答案 0 :(得分:1)

乍一看有两个选项:

  1. 如果两个控件的事件处理程序具有相同的签名,则只需将它们指向同一个处理程序即可。

  2. 否则,您创建1个方法DoSomething(),其中包含执行常见任务的代码,并从两个控件中调用它们的事件处理程序。

答案 1 :(得分:1)

如果我理解你的问题你想要将几个控件绑定到一个事件处理程序。如果所有控件都是相同的类型你可以这样做(让我们假设它是一个按钮):

some event_handler(object sender, EventArgs e)
{
  Button retrievedButton = sender as Button;
  // now you have instance of a button which fired an eventhandler stored in retrievedButton variable
  // and You can do something with that
}