如何获得';MFC::ON_CONTROL_RANGE';类似于使用C#的Winforms中的行为

本文关键字:Winforms CONTROL MFC 何获得 ON 类似于 RANGE | 更新日期: 2023-09-27 18:25:57

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

有没有类似MFC的ON_CONTROL_RANGE宏。

ON_CONTROL_RANGE(BN_CLICKED, id1, id2, memberFun )

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

任何帮助都会很棒。

如何获得';MFC::ON_CONTROL_RANGE';类似于使用C#的Winforms中的行为

为了使事情稍微简单一些并(imho)更易于维护,可以利用设计器中控件的Tag属性,将所有25的标记设置为相同的字符串值。

然后当你的表格加载时:

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

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

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

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

让它们都一样。