0

在我的 Win forms 应用程序中,我有大约 25 个按钮,我想在这些按钮的“单击”事件上调用相同的函数。

有没有像 MFC 的, C# 中的ON_CONTROL_RANGE 宏。

ON_CONTROL_RANGE(BN_CLICKED, id1, id2, memberFun )

或者我必须为所有按钮手动添加事件处理程序。

任何帮助都会很棒。

4

2 回答 2

1

为了使事情变得更容易和(恕我直言)更易于维护,您可以利用Tag设计器中控件的属性,将所有 25 的标记设置为相同的字符串值。

然后当您的表单正在加载时:

foreach(var control in Controls.Where((c) => c.Tag != null && c.Tag.ToString() == "MYVALUE")
    control.Click += EventHandler;

将来,如果您需要添加另一个控件,只需将标签设置为您想要的值,此代码就会处理它。

于 2013-08-01T10:11:31.093 回答
0

您可以将每个按钮单击事件处理程序分配给相同的方法。在您的设计器文件中,您将看到:

Button1.Click += ...;
Button2.Click += ...;

让它们都一样。

于 2013-08-01T09:58:35.063 回答