Создание Windows-приложений на основе Visual C#

         

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


При размещении на форме элемента управления в режиме дизайна, среда создает код в области Windows Form Designer generated code, описывающий этот элемент. Если мы назначим в обработчике заданного элемента управления генерацию аналогичного кода, то в запущенном приложении можно будет добавлять на форму другие элементы, активизируя этот обработчик. Для добавления элементов управления используется объект ControlsCollection, содержащий ряд методов (см. таблицу 3.1). Под коллекцией элементов понимается их упорядоченная последовательность.

Таблица 3.1. Некоторые методы ControlsCollection

МетодОписание
AddДобавление элемента в коллекцию
AddRangeДобавление массива элементов
ClearУдаление всех элементов из коллекции
RemoveУдаление элемента из коллекции
RemoveAtУдаление элемента по заданному индексу
CountОбщее число элементов в коллекции

Рассмотрим на практике добавление элементов управления. Создайте новое приложение и назовите его RegistrationForm. Располагаем на форме три надписи, два текстовых поля, кнопку, элементы CheckBox и GroupBox (рис. 3.3):


Рис. 3.3.  Приложение RegistrationForm. Расположение элементов на форме в режиме дизайна

Устанавливаем следующие значения свойств формы и элементов управления:

Form1, форма, свойствоЗначение
Size392; 320
Text Регистрация программы
label1, свойствоЗначение
Location32; 8
Size224; 24
Text Выберите тип регистрации
label2, свойствоЗначение
Location16; 32
Size48; 23
Text Name
label3, свойствоЗначение
Location16; 64
Size40; 23
Text PIN
Button1, свойствоЗначение
Location80; 248
Size144; 23
TextРегистрация
TextBox1, свойствоЗначение
Location96; 32
Size184; 20
Text
TextBox2, свойствоЗначение
Location96; 64
Size184; 20
Text
CheckBox1, свойствоЗначение
Location40; 40
Size232; 24
TextРасширенные возможности
GroupBox1, свойствоЗначение
Location16; 80
Size344; 144
TextВведите регистрационые данные

Элемент CheckBox обычно применяется для выбора отложенного действия, но в данном случае при его выборе немедленно будет появляться дополнительное текстовое поле и надпись. Щелкаем дважды на этом элементе в режиме дизайна — при этом создается событие CheckedChanged:


Листинг 3.1.

(html, txt)

Запускаем приложение. При выборе пункта "Расширенные возможности" на форме появляется третье текстовое поле. Для определения параметров добавляемого элемента, таких как размер и расположение, лучше всего добавить элемент в режиме дизайна формы, скопировать нужные параметры из области Windows Form Designer generated code, а затем удалить его.

Добавим на форму два элемента RadioButton (переключателя) — при последовательном их выборе дополнительные текстовое поле и надпись будут появляться или исчезать. Устанавливаем значения свойства Text этим элементам "Полная" и "Ограниченная". Дважды щелкаем на каждый из переключателей, переходя в их код. В обработчике первого элемента RadioButton вставляем скопированный код из обработчика чекбокса. При выборе второго переключателя вся группа элементов, содержащаяся в GroupBox, будет удалена, а затем в новую группу добавятся два текстовых поля и две надписи:

Листинг 3.2.

(html, txt)

Запускаем приложение. При выборе переключателя cо значением свойства Text "Полная" снова появляются дополнительные элементы (рис. 3.4):


Рис. 3.4.  Результат запуска приложения RegistrationForm

На диске, прилагаемом к книге, вы найдете приложение RegistrationForm (Code\Glava3\ RegistrationForm).



// Добавляем вторую надпись Label lbl2 = new Label(); lbl2.Location = new System.Drawing.Point(16, 64); lbl2.Name = "labelsecond"; lbl2.Size = new System.Drawing.Size(40, 23); lbl2.TabIndex = 3; lbl2.Text = "PIN"; groupBox1.Controls.Add(lbl2);

//Добавляем первое текстовое поле TextBox txt1 = new TextBox(); txt1.Location = new System.Drawing.Point(96, 32); txt1.Name = "textBox1"; txt1.Size = new System.Drawing.Size(184, 20); txt1.TabIndex = 0; txt1.Text = ""; groupBox1.Controls.Add(txt1);

//Добавляем второе текстовое поле TextBox txt2 = new TextBox(); txt2.Location = new System.Drawing.Point(96, 64); txt2.Name = "textBox2"; txt2.Size = new System.Drawing.Size(184, 20); txt2.TabIndex = 1; txt2.Text = ""; groupBox1.Controls.Add(txt2); }

Листинг 3.2.

Запускаем приложение. При выборе переключателя cо значением свойства Text "Полная" снова появляются дополнительные элементы (рис. 3.4):


Рис. 3.4.  Результат запуска приложения RegistrationForm

На диске, прилагаемом к книге, вы найдете приложение RegistrationForm (Code\Glava3\ RegistrationForm).


Содержание раздела