Как я могу создать массив элементов управления в C # .NET? - PullRequest
2 голосов
/ 04 февраля 2010

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

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

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

Ответы [ 4 ]

4 голосов
/ 04 февраля 2010

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

List<Control>

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

0 голосов
/ 05 февраля 2010

Если вы используете веб-формы и .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);
0 голосов
/ 04 февраля 2010

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

0 голосов
/ 04 февраля 2010

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

...