目前,我的 Winform 上有一些按钮需要根据用户单击的内容在不同点禁用/启用。
我做的第一稿是
button1.Enabled = false;
button2.Enabled = false;
禁用 2 个按钮,这显然是一种可怕的做法,因为目前有很多超过 2 个,而且可能还会有更多,因为这仍在开发中。所以我需要有一种方法可以轻松更改表单上的按钮选择。
然后我想出了这个
private enum Buttons { Button1, Button2 } // etc with all buttons - that are named :)
private void DisableButtons(params Buttons[] buttons)
{
foreach (Buttons button in buttons)
{
switch (button)
{
case Buttons.Button1:
button1.Enabled = false;
break;
case Buttons.Button2:
button2.Enabled = false;
break;
}
}
}
我仍然不太满意。我可以废弃switch-case
andforeach
为
private void DisableButtons(params Buttons[] buttons)
{
button1.Enabled = buttons.Contains(Buttons.Button1) ? false : true;
}
对于每个按钮,但我只是认为必须有更好的方法。
关于如何更有效地做到这一点的任何想法?
谢谢