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