我有一个包含几个标准控件(文本框,按钮等)的表单。我想在集合中对某些控件进行分组,以便我可以在任何给定时间启用和禁用它们,而无需显式设置每个控件。这样做的语法是什么?这是一些伪代码,用于显示我想要做的事情....
Control[] ControlCollection = new Control[];
ControlCollection.add(Button1);
ControlCollection.add(TextBox1);
...
...
foreach( Control x in ControlCollection)
{
x.Enabled = false;
}
我知道我可以将控件放在一个分组框中并完成此操作,但控件不会以方便的方式放在窗体上。
答案 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);