我在C#中有一个带有26个按钮的代码,我希望它们都被禁用,直到用户做某事,但我不想复制/粘贴button1.Enable = false; Button2.Enable = false ... 那么有办法做这样的事情:
for (int i = 1; i < 26; i++)
{
button+i.Enable = false;
}
感谢您的帮助。
答案 0 :(得分:1)
您可能想直接迭代按钮。
foreach(var button in this.Controls.OfType<Button>())
{
button.Enable = false;
}
答案 1 :(得分:0)
您可以使用[Errno 1] Operation not permitted
Form.Controls.Find()
代码假定您的按钮的名称为for (int i = 1; i < 26; i++)
{
this.Controls.Find("button" + i, searchAllChildren: false).Enable = false;
}
到button1
。
不可能像你一样直接,但这无论如何都没有意义。
答案 2 :(得分:0)
使用Controls.Find
或Controls.OfType<Button>()
中的任何一个仅在运行时有效。我更喜欢静态可检查的编译时方法。然后,如果删除表单上的按钮,代码将无法编译。帮助您提供类型安全的感觉。
private Button[] _buttons = null;
在初始化代码中设置一次数组:
_buttons = new[] { button1, button2, button26 };
然后,当您需要对按钮执行某些操作时,您只需执行此操作:
foreach (var button in _buttons)
{
button.Enable = false;
}