Читать «ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание» онлайн - страница 516

Эндрю Троелсен

// Получение доступа к вложенной коллекции ControlCollection формы.

Control.ControlCollection coll = this.Controls;

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

Таблица 21.1. Члены ControlCollection

Член Описание
Add() AddRange() Используются для добавления в коллекцию нового производного от Control типа (или массива типов)
Clear() Удаляет все элементы из коллекции
Count Возвращает число элементов, имеющихся в коллекции
GetEnumerator() Возвращает интерфейс IEnumerator для данной коллекции
Remove() RemoveAt() Используются для удаления элемента из коллекции

Ввиду того, что форма поддерживает коллекцию элементов управления, в Windows Forms очень просто динамически создавать, удалять или как-то иначе обрабатывать визуальные элементы. Предположим, например, что вы хотите отключить все типы Button в данной форме (или выполнить иное подобное действие, например, изменить цвет фона всех TextBox). Для этого можно использовать ключевое слово is C#, чтобы обнаружить нужные элементы и соответственно изменить их состояние.

private void DisableAllButtos() {

 foreach (Control с in this.Controls) {

  if (c is Button) ((Button)c).Enabled = false;

 }

}

Исходный код. Проект ControlsByHand размещен в подкаталоге, соответствующем главе 21.

Добавление элементов управления в форму в Visual Studio 2005

Теперь, когда вы понимаете суть процесса добавления элементов управления в форму, давайте посмотрим, как Visual Studio 2005 может автоматизировать этот процесс. Создайте новый проект Windows Application, выбрав дня него произвольное имя, поскольку этот проект будет предназначен только для тестирования. Аналогично рассмотренному в главе 19 случаю создания меню, панелей инструментов и строк состояния, когда среда IDE выполняла автоматическое добавление подходящей переменной в файл *.Designer.cs, те же действия выполняются средой разработки и при перетаскивании в окно проектирования формы любого другого элемента управления. Точно так же при изменении внешнего вида элемента с помощью окна свойств IDE выполняется соответствующие изменения программного кода члена-функции InitializeComponent() (также размещенного в файле *.Designer.cs).

Замечание. Напомним, что окно свойств, если щелкнуть в нем на кнопке с пиктограммой молнии, позволяет обработать события элемента управления. Нужно выбрать элемент из раскрывающегося списка и указать имя метода, который должен вызываться для интересующих вас событий (или просто выполнить двойной щелчок на имени события, чтобы сгенерировать обработчик события с именем, предлагаемым по умолчанию).

Добавьте в окно проектирования формы типы TextBox (текстовое окно) и Button (кнопка). Обратите внимание на то, что при изменении положения элемента управления в окне проектирования формы Visual Studio 2005 предлагаются визуальные подсказки, касающиеся размещения и выравнивания этого элемента (рис. 21.2).