Программирование >>  Программирование с использованием ajax 

1 ... 143 144 145 [ 146 ] 147 148 149 ... 396


Практическое занятие Использование элементов управления

RadioButton и CheckBox

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

Таблица 15.10. Часто используемые события класса CheckBox Событие Описание

CheckedChanged Происходит при каждом изменении свойства Checked флажка.

Обратите внимание, что в элементе управления CheckBox, свойство ThreeState которого имеет значение true, можно выполнить щелчок на флажке без изменения значения свойства Checked. Это происходит при изменении состояния флажка с Checked на Indeterminate

CheckStateChanged Происходит при каждом изменении свойства CheckedState флажка.

Поскольку и Checked, и Unchecked - возможные значения свойства CheckedState, ЭТО событие отправляется при каждом изменении свойства Checked. Кроме того, оно отправляется также при изменении состояния с Checked на Indeterminate

Элемент управления GroupBox

Элемент управления GroupBox часто используют для логического группирования набора элементов управления, таких как RadioButton и CheckBox, и для отображения заголовка и рамки вокруг этого набора.

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

Вероятно, отношение между родительским и дочерним элементом требует некоторых дополнительных пояснений. Когда элемент управления помещается в форму, форма становится его родительским элементом, и, следовательно, элемент управления является дочерним элементом формы. При помещении элемента управления GroupBox на форму, он становится дочерним элементом формы. Поскольку групповая рамка сама может содержать элементы управления, она становится их родительским элементом. В результате перемещение элемента управления GroupBox ведет к перемещению всех помещенных в нее элементов управления.

Еще одно следствие помещения элементов управления в групповую рамку то, что на них можно оказывать влияние, изменяя соответствующее свойство групповой рамки. Например, если нужно отключить все элементы управления внутри элемента управления GroupBox, можно просто установить значение свойства Enabled элемента GroupBox равным false.

Применение элемента управления GroupBox продемонстрировано в следующем практическом занятии.



целях демонстрирования применения переключателя попросим пользователей предоставить дополнительную информацию: указать свой пол.

Измените пример использования текстовых полей следующим образом.

1. Удалите надпись labelOccupation и текстовое поле textBoxOccupation.

2. Добавьте элементы управления CheckBox, а GroupBox и два элемента управления RadioButton и назовите их, как показано на рис. 15.12. Обратите внимание, что элемент управления GroupBox расположен на вкладке Containers (Контейнеры) панели Toolbox. В отличие от других, использованных до сих пор элементов управления, элемент управления GroupBox находится в разделе Containers (Контейнеры) панели Toolbox.


Рис. 15.12. Измененная форма

3. Значения свойств Text элементов управления RadioButton и CheckBox должны совпадать с именами элементов управления без первых трех букв, а значением свойства Text элемента управления GroupBox должно быть Sex.

4. Установите значение свойства Checked флажка checkBoxProgrammer равным true. Обратите внимание, что значение свойства CheckState автоматически изменяется на Checked.

5. Установите значение свойства Checked переключателя radioButtonMale или radioButtonFemale равным true. Обратите внимание, что нельзя установить равным true значения этого свойства для обоих переключателей. При попытке проделать это со второй кнопкой значение первого переключателя RadioButton автоматически изменится на false.

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

1. В конструкторе формы удалите две строки, которые ссылаются на textBoxOccupation. Ими являются подписки на событие Validating и строка, которое устанавливает значение свойства Tag равным false.

2. Полностью удалите метод txtOccupation Validating ().



Описание полученных результатов

Метод txtBoxTextChanged включает в себя проверки для определения того, что вызывающим элементом управления было текстовое поле textBoxOccupation. Теперь известно, что это не так (поскольку этот элемент был удален), поэтому метод нужно изменить, удалив из него блок else if и изменив проверку if следующим образом:

private void textBox TextChanged(object sender. System.EventArgs e)

Приведение объекта-отправителя к типу TextBox. TextBox tb = (TextBox)sender;

Проверка допустимости данных и установка значения свойства tag и цвета фона соответствующим образом, if (tb.Text.Length == 0) {

tb.Tag = false; tb.BackColor = Color. Red;

else {

tb.Tag = true;

tb.BackColor = SystemColors.Window;

Вызов функции ValidateOK для установки состояния кнопки ОК. ValidateOKО;

Еще одно место, где выполнялась проверка удаленного текстового поля - метод ValidateOK (). Полностью удалите проверку, чтобы код приобрел следующий вид:

private void ValidateOK () {

Активизирует кнопку ОК, если значения всех свойств Tag - true, this.buttonOK.Enabled = ((bool)(this.textBoxAddress.Tag) &&

(bool)(this.textBoxAge.Tag) && (bool)(this.textBoxName.Tag));

Поскольку теперь мы используем флажок, а не текстовое поле, нам известно, что пользователь не может ввести никакую недопустимую информацию, поскольку он всегда либо является программистом, либо не является им. Известно также, что пользователь является либо мужчиной, либо женщиной, и поскольку значение свойства одного из переключателей установлено равным true, пользователь лишен возможности выбора недопустимого значения. Поэтому остается только изменить текст справки и вывод программы. Это выполняется в обработчиках событий кнопок:

private void buttonHelp Click(object sender. System.EventArgs e)

Запись краткого описания каждого элемента TextBox в поле Output, string output;

output = Name = Your name\r\n ; output += Address = Your address\r\n ;

output += Programmer = Check Programmer if you are a programmer\r\n ; output += Sex = Choose your sex\r\n ;

output += Age = Your age ;

output = Name = Ваше имя\г\п ; output += Address = Ваш адрес\г\п ;

output += Programmer = Установите флажок Programmer, если вы являетесь программистом\г\п ;

output += Sex = Выберите свой пол\г\п ;



1 ... 143 144 145 [ 146 ] 147 148 149 ... 396

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика