我一直在手动设置每个按钮的事件,但是我该如何概括呢?
我想我可以覆盖 ButtonBase,但我该怎么做呢?我是一个相对较新的 C# 程序员,我需要这个,因为我正在模拟一个真实的设备,所以我需要改变光标,以便用户知道他们可以点击哪里。
我一直在手动设置每个按钮的事件,但是我该如何概括呢?
我想我可以覆盖 ButtonBase,但我该怎么做呢?我是一个相对较新的 C# 程序员,我需要这个,因为我正在模拟一个真实的设备,所以我需要改变光标,以便用户知道他们可以点击哪里。
如果所有按钮都在表单上(没有嵌套容器),那么您可以在Form_Load()
foreach(Button b in this.Controls.OfType<Button>())
{
b.MouseEnter += (s, e) => b.Cursor = Cursors.Hand;
b.MouseLeave += (s, e) => b.Cursor = Cursors.Arrow;
}
如果您不想触摸表单上的每个按钮,您可以做一个简单的集合并遍历它们
Button[] buttons = new[] {button1, button2, button3};
foreach (Button b in buttons)
{
b.MouseEnter += (s, e) => b.Cursor = Cursors.Hand;
b.MouseLeave += (s, e) => b.Cursor = Cursors.Arrow;
}
创建一个新的“类库”项目并像这样创建一个新类:
public class ExtendedButton:Button
{
public ExtendedButton()
{
MouseEnter += (s, e) => Cursor = Cursors.Hand;
MouseLeave += (s, e) => Cursor = Cursors.Arrow;
}
}
在 Windows 窗体项目上,添加对新库的引用,并在窗体上添加 ExtendedButton 控件而不是 Button。
您可以在 Visual Studio 设计器中执行此操作。通过单击选择所有按钮Ctrl并更改Cursor属性。