c# - 单击任何按钮的事件(C# windows 窗体)

标签 c# visual-studio-2010 windows-forms-designer

我正在开发一个包含许多按钮的程序,这些按钮在单击时应该执行类似的操作,但根据单击哪个按钮会有细微差别。 问题是唯一直接的途径是为每个按钮编写代码,这将是一项非常重复的任务。有没有一种方法可以简单地对一个 block 进行编程,使其可以点击任何按钮以及点击了哪个按钮?

最佳答案

为所有按钮分配相同的事件处理程序。

foreach (var button in Controls.OfType<Button>()) {
    button.Click += button_Click;
}

或者您可以在属性窗口中选择相同的事件处理程序切换到事件(闪烁图标)。


private static void button_Click(object sender, EventArgs eventArgs)
{
    switch (((Button)sender).Name)
    {
        // find a way to disambiguate.
    }
}

您还可以在 Tag 属性中添加一些有用的信息来消除歧义。最后但同样重要的是,您可以从 Button 派生自己的按钮并添加适当的属性。它们甚至会出现在属性窗口中。

关于c# - 单击任何按钮的事件(C# windows 窗体),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12554314/

相关文章:

c# - 使用 xslt 将 xml 转为 json

c# - 必须声明标量变量错误消息

c# - 局部变量在 Visual Studio 2010 中出现超出范围

c# - Visual Studio 2010 错误 : "Exceptions has been thrown by the target of an invocation"

c# - 有没有办法通过 VS 设计器严格将控件颜色设置为十六进制值?

c# - 将 DesignerSerializationVisibility 的默认值设置为隐藏

c# - ENVDTE - 将新项目添加到现有解决方案并将其定位在特定文件夹中

c# - 数据行 ID 字符串与对象 ID 字符串不匹配,即使在检查调试后它们是相同的字符串

asp.net - 将 .NET 3.5 上的 ASP.NET (MVC 2) 迁移到 .NET 4 #gotchas

c# - 从没有按钮的代码更新 WinForm 标签值