在VB.NET我能做到
private sub button_click(sender, e) handles Button1.Click, Button2.Click etc... do something... end sub
C#.NET中是否有这样的方法?我有大约16个按钮,它们都调用相同的功能,只是将按钮的文本传递给函数。我宁愿没有16 private void button_clicks
调用一个函数。
我不知道该怎么做(不熟悉C#。)
答案 0 :(得分:10)
Button1.Click += button_click;
Button2.Click += button_click;
答案 1 :(得分:7)
手动,你可以这样做:
button1.Click += button_Click;
button2.Click += button_Click;
...
在Designer中,Click事件属性实际上是一个下拉菜单,您可以在其中选择具有相应签名的现有方法。
答案 2 :(得分:5)
C#没有Handles
关键字
相反,您需要明确添加处理程序:
something.Click += button_click;
somethingElse.Click += button_click;
答案 3 :(得分:4)
试试这个:
button1.Click += button_click;
button2.Click += button_click;
答案 4 :(得分:2)
如果你想让它保持可维护性,我会选择这样的东西:
//btnArray can also be populated by traversing relevant Controls collection(s)
Button[] btnArray = new Button[] {button1, button2};
foreach(Button btn in btnArray) {
btn.Click += button_Click;
}
对此代码的任何重构都是通过单点维护完成的。例如:
答案 5 :(得分:1)
btn1.Click += button_click;
btn2.Click += button_click;
是答案