Добавление элементов управления
При размещении на форме элемента управления в режиме дизайна, среда создает код в области Windows Form Designer generated code, описывающий этот элемент. Если мы назначим в обработчике заданного элемента управления генерацию аналогичного кода, то в запущенном приложении можно будет добавлять на форму другие элементы, активизируя этот обработчик. Для добавления элементов управления используется объект ControlsCollection, содержащий ряд методов (см. таблицу 3.1). Под коллекцией элементов понимается их упорядоченная последовательность.
Add | Добавление элемента в коллекцию |
AddRange | Добавление массива элементов |
Clear | Удаление всех элементов из коллекции |
Remove | Удаление элемента из коллекции |
RemoveAt | Удаление элемента по заданному индексу |
Count | Общее число элементов в коллекции |
Рассмотрим на практике добавление элементов управления. Создайте новое приложение и назовите его RegistrationForm. Располагаем на форме три надписи, два текстовых поля, кнопку, элементы CheckBox и GroupBox (рис. 3.3):
Рис. 3.3. Приложение RegistrationForm. Расположение элементов на форме в режиме дизайна
Устанавливаем следующие значения свойств формы и элементов управления:
Size | 392; 320 |
Text | Регистрация программы |
Location | 32; 8 |
Size | 224; 24 |
Text | Выберите тип регистрации |
Location | 16; 32 |
Size | 48; 23 |
Text | Name |
Location | 16; 64 |
Size | 40; 23 |
Text | PIN |
Location | 80; 248 |
Size | 144; 23 |
Text | Регистрация |
Location | 96; 32 |
Size | 184; 20 |
Text |
Location | 96; 64 |
Size | 184; 20 |
Text |
Location | 40; 40 |
Size | 232; 24 |
Text | Расширенные возможности |
Location | 16; 80 |
Size | 344; 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).