-3
for (int i=1; i<4; i++)
{
    string buttonName = "button" + i;
    if (Controls[buttonName].BackColor = Color.Red)
    {
        Controls[buttonName].Enabled = false;
    }
}

此代码完美运行。该代码检查 3 个不同的按钮(按钮 1、按钮 2、按钮 3),如果它们的颜色为红色,它们将被禁用。使用字符串引用按钮名称:

Controls[buttonName]

有没有办法以相同的方式使用字符串引用 ListBox?“控件”需要更改为什么?

4

1 回答 1

0

如果您只是想查看所有列表框,您也可以使用.OfType<T>()

foreach (ListBox lb in this.Controls.OfType<ListBox>())
{
    lb.Enabled = false;
}

...当然,它的工作原理相同,.OfType<Button>()无需以枚举控件的方式命名控件。

于 2017-10-16T20:13:42.423 回答