Как я могу создать массив элементов управления в C#.NET?
У меня есть форма, которая содержит несколько стандартных элементов управления (текстовые поля, кнопки и т. Д.). Я хочу сгруппировать определенные элементы управления в коллекции, чтобы я мог включать и отключать их в любое время без необходимости явно устанавливать каждый из них. Какой синтаксис для этого? Вот некоторый псевдокод, чтобы показать, что я хочу сделать....
Control[] ControlCollection = new Control[];
ControlCollection.add(Button1);
ControlCollection.add(TextBox1);
...
...
foreach( Control x in ControlCollection)
{
x.Enabled = false;
}
Я знаю, что мог бы поместить элементы управления, скажем, в групповой блок, и выполнить это, но элементы управления не расположены в форме таким образом, чтобы это было удобно делать.
4 ответа
Ваш пример должен быть в порядке
List<Control>
также будет работать
Если вы еще не используете свойство тега элемента управления, вы можете поместить некоторую форму controlid в тег, а затем перечислить коллекцию элементов управления в поисках нужного идентификатора и включить / отключить их.
Рассматривали ли вы использовать менеджер макета? (что касается позиционирования) Сохранение списка элементов управления (без указания позиции элемента управления) не будет автоматически позиционировать элементы управления, может помочь менеджер компоновки.
Предполагая, что вы используете веб-формы и.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);