2010-02-04 8 views
1

У меня есть форма, которая содержит несколько стандартных элементов управления (текстовые поля, кнопки и т. Д.). Я хочу сгруппировать определенные элементы управления в коллекциях, чтобы я мог включать и отключать их в любой момент времени, не указывая явно каждый из них. Каков синтаксис для этого? Вот некоторые псевдо-код, чтобы показать, что я хочу сделать ....Как создать массив элементов управления в C# .NET?

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

Я знаю, что я мог бы поставить элементы управления, скажем, в поле группы и сделать это, но элементы управления не расположены на форме в такой что это удобно.

+0

Вы на самом деле пытались реализации что-то похожее на код псевдо? Это так, как я думал, может работать. –

+0

сделал то, что вы предлагаете, не работает? – hunter

+0

Я это окна форм или webforms (asp.net)? –

ответ

4

ваш пример должен быть хорошо

List<Control> 

также будет работать

+0

Мой пример не работал точно так же, как набирается, но использование списка отлично работает. – PICyourBrain

0

Рассматривали ли вы с помощью менеджера компоновки? (в случае позиционирования) Сохранение списка элементов управления (без указания позиции элемента управления) не будет автоматически позиционировать элементы управления, которые может помочь менеджер компоновки.

0

Если вы уже не используете свойство тега элемента управления, тогда вы можете поместить в тег какую-то форму controlid, а затем перечислите коллекцию элементов управления, которая ищет нужный вам идентификатор, и включите/отключите их.

0

Предполагая, что вы используете веб-форму и .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); 
Смежные вопросы