C#相当于VB.NET';处理按钮1。单击,按钮2。单击';
在这方面,我能做到 在C#.NET中有这样的方法吗?我有大约16个按钮,它们都调用相同的函数,只是将按钮的文本传递给函数。我宁愿不要16次单击私有无效按钮调用一个函数 不过我不知道该怎么做(对C不太熟悉)。C\35;没有C#相当于VB.NET';处理按钮1。单击,按钮2。单击';,c#,.net,vb.net,winforms,C#,.net,Vb.net,Winforms,在这方面,我能做到 在C#.NET中有这样的方法吗?我有大约16个按钮,它们都调用相同的函数,只是将按钮的文本传递给函数。我宁愿不要16次单击私有无效按钮调用一个函数 不过我不知道该怎么做(对C不太熟悉)。C\35;没有句柄关键字。 相反,您需要显式添加处理程序: something.Click += button_click; somethingElse.Click += button_click; 试试这个: button1.Click += button_click; button2.C
句柄
关键字。相反,您需要显式添加处理程序:
something.Click += button_click;
somethingElse.Click += button_click;
试试这个:
button1.Click += button_click;
button2.Click += button_click;
您可以手动执行以下操作:
button1.Click += button_Click;
button2.Click += button_Click;
...
在设计器中,单击事件属性实际上是一个下拉菜单,您可以在其中选择具有适当签名的现有方法
btn1.Click += button_click;
btn2.Click += button_click;
答案是如果您想保持它的可维护性,我会选择这样的方式:
//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;
}
对该代码的任何重构都是通过单个维护点完成的。例如:
- 您决定使用自定义事件(即MyClick)绑定到自定义按钮类
- 您决定更改按钮收集方式的逻辑,添加或删除按钮
- 您认为按钮单击是一个坏名字,或者需要有条件事件绑定
btn1.Click += button_click;
btn2.Click += button_click;
//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;
}