【发布时间】:2019-09-14 09:49:51
【问题描述】:
我正在开发一个 WinForms 应用程序,我希望用户在该应用程序中单击一个按钮,然后更改按钮的文本(将 +1 添加到计数器)。我有多个按钮,并且有三个方法 Click MouseDown 和 MouseUp 对于每一个都是非常低效的。
所以我设置了一个类,但不知道如何将它分配给所有按钮。
public class AddButton : Button
{
public int Count { get; set; }
private void Button_Click(object sender, EventArgs e)
{
AddButton ab = (AddButton)sender;
Count++;
ab.Text = Count + " Added";
}
}
也许我也可以将所有按钮的EventHandlers 链接到一个,但我不知道如何从那里开始以及将代码放在哪里。这是Visual Studio项目下载link如果你需要的话。
【问题讨论】:
-
你试过在构造函数中分配处理程序吗?
-
@Wiktor Zychla 我在哪里可以找到构造函数?
-
这确实是 3 个问题。 1) 向多个控件添加相同的处理程序是通过在选择所有控件后将处理程序名称粘贴到属性/事件窗格中的事件字段中来完成的。 - 2) 但你也可以像这样在代码中连接事件:control.eventname += handlername。循环执行它,你就设置好了。 - 3) 你的类缺少构造函数。 (至少需要一个无参数的,让设计师开心!)像这样添加一个
public AddButton() {};把它放到你的课堂上! .现在您可以通过Click += Button_Click; -
当我现在点击一个按钮时,什么也没有发生。如何使单击按钮执行 AddButton 类中的“Button_Click”?
-
我给你看了;但你没有更新你的代码。
标签: c# winforms class inheritance