如何在C#.NET中创建控件数组?

时间:2010-02-04 20:44:09

标签: c# arrays collections controls

我有一个包含几个标准控件(文本框,按钮等)的表单。我想在集合中对某些控件进行分组,以便我可以在任何给定时间启用和禁用它们,而无需显式设置每个控件。这样做的语法是什么?这是一些伪代码,用于显示我想要做的事情....

Control[] ControlCollection = new Control[];
ControlCollection.add(Button1);
ControlCollection.add(TextBox1);
...
...
foreach( Control x in ControlCollection)
{
    x.Enabled = false;
}

我知道我可以将控件放在一个分组框中并完成此操作,但控件不会以方便的方式放在窗体上。

4 个答案:

答案 0 :(得分:4)

你的例子应该没​​问题

List<Control>

也可以使用

答案 1 :(得分:0)

您是否考虑过使用布局管理器? (就定位而言) 保持控件列表(不指定控件的位置)不会自动定位控件,布局管理器可以提供帮助。

答案 2 :(得分:0)

如果您还没有使用控件的tag属性,那么您可以在标记中放置某种形式的controlid,然后枚举控件集合,查找您想要的特定ID并启用/禁用它们。

答案 3 :(得分:0)

假设您使用的是webforms和.net 3.5,那么您可以使用

var cntrls = new List<WebControl>()
        {
            {new TextBox(){ID = "Textbox1"}},
            {new Button(){ID="Button1", Text = "Click me!"}}
        };

cntrls.ForEach(x => x.Enabled = false);