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

1 ... 140 141 142 [ 143 ] 144 145 146 ... 396


OS* Foiml

labelName labelddress

teste oxName textBo}Addres$

I buttonOK I bUtonHelp

1аЬеЮссирв(юп textBoxO:cupation

labelge texJBoxAge

labeDiApiit lextBoxOulpul

Puc, 15.10. Пользовательский интерфейс приложения TextBoxTest

7. Значение свойства CausesValidation кнопки btnHelp установите равным false. Вспомните из описания событий Validating и Validated, что установка этого свойства равным false позволяет пользователям щелкать на этой кнопке, не беспокоясь о допустимости введенных данных.

8. После того, как размеры формы и элементов управления подобраны, следует определить привязку элементов управления так, чтобы они вели себя нужным образом при изменении размеров формы. Установите значение свойства Anchor для каждого типа элемента управления. Вначале, удерживая нажатой клавишу <Ctrl>, последовательно выберите все элементы управления типа TextBox, за исключением textBoxOutput. Выбрав все эти элементы управления, в окне Properties установите значение свойства Anchor равным Тор, Left, Right. Тем самым вы установите значение свойства Anchor для всех выбранных элементов типа TextBox. Выберите элемент управления textBoxOutput и установите значение его свойства Anchor равным Тор, Bottom, Left, Right. Теперь установите значение свойства Anchor обоих элементов управления Button равным Тор, Right.

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

9. Теперь остается определить последние свойства. Найдите свойства Size и MinimumSize формы. Форма будет практически бесполезной, если ее размеры меньше используемых в настоящий момент. Поэтому установите значение свойства MinimumSize равным значению Size.

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

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



Добавление обработчиков событий

в представлении Design View дважды щелкните на кнопке buttonOK. Повторите это действие для второй кнопки. Как было показано в примере создания кнопки, ранее в этой главе, это ведет к созданию обработчиков события Click. Щелчок на кнопке ОК должен приводить к передаче текста из текстовых полей ввода в поле вывода, доступное только для чтения.

Код двух обработчиков событий Click имеет следующий вид:

private void buttonOK Click(object sender, EventArgs e)

Никакой проверки недопустимости значений не выполняется, поскольку это не обязательно string output;

Конкатенация текстовых значений четырех элементов управления типа TextBox.

output = Name: + this.textBoxName.Text + \r\n ;

output += Address: + this.textBoxAddress.Text + \r\n ;

output += Occupation: + this.textBoxOccupation.Text + \r\n ;

output += Age: + this.textBoxAge.Text;

Вставка нового текста.

this.textBoxOutput.Text = output;

private void buttonHelp Click (object sender, EventArgs e) {

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

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

output += Occupation = Only allowed value is Programmer\r\n ; output += Age = Your age ;

string output;

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

output += Occupation = Единственное допустимое значение Programmer\r\n ; output += Age = Ваш возраст ;

Вставка нового текста.

this.textBoxOutput.Text = output;

Обе функции используют свойство Text каждого элемента управления TextBox. Свойство Text элемента управления textBoxAge используется для получения значения, введенного в качестве возраста данного лица, а это же свойство элемента управления textBoxOutput служит для отображения объединенного текста.

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

□ Имя пользователя не может быть пустым.

□ Возраст пользователя должен быть числом, которое больше или равно нулю.

□ Профессией пользователя должна быть Programmer или же это значение должно быть оставлено пустым.

□ Адрес пользователя не может быть пустым.



Следовательно, проверка, которая должна выполняться для двух текстовых полей (textBoxName и textBoxAddress), идентична. Кроме того, необходимо воспрепятствовать вводу недопустимого значения в поле Age (Возраст), а также проверить, подтверждает ли пользователь, что он является программистом.

Чтобы воспрепятствовать щелчку на кнопке ОК до ввода каких-либо данных, начнем с установки ее свойства Enabled равным false - на этот раз в конструкторе формы, а не в окне Properties. При установке свойств в конструкторе это должно выполняться не ранее вызова сгенерированного кода в функции InitializeComponent ():

public Forml () {

InitializeComponent (); this.buttonOK.Enabled = false;

Теперь создадим обработчик для двух текстовых полей, которые необходимо проверять на отсутствие пустых значений. Это выполняется посредством подписки на событие Validating текстовых полей. Информирование элемента управления о необходимости обработки события осуществляется методом txtBoxEmptyValidating () - таким образом, этот единый метод обработки события используется для двух различных элементов управления.

Нам требуется также способ выяснения состояния элементов управления. Для этого применяется свойство Tag элемента управления TextBox. Вспомните, что из среды Forms Designer свойству Tag можно присваивать только строки. Однако, поскольку установка значения Tag выполняется из кода, возможности его использования достаточно велики, т.к. свойство Tag принимает тип object, который в данном случае больше подходит для ввода булевского значения.

Добавьте в конструктор следующие строки:

this.buttonOK.Enabled = false; Значения свойства Tag, предназначенные для проверки допустимости данных this.textBoxAddress.Tag = false; this.textBoxAge.Tag = false; this.textBoxName.Tag = false; this.textBoxOccupation.Tag = false;

Подписки на события

this.textBoxName.Validating += new System.ComponentModel.@@ta CancelEventHandler(this.textBoxEmpty Validating);

this.textBoxAddress.Validating += new System.ComponentModel.CancelEventHandler(this.textBoxEmpty Validating) ;

Обратите внимание, что при вводе фрагмента += кода обработчика события Visual Studio обнаруживает добавление обработчиков события к объекту и предлагает остальную часть текста. Однократное нажатие клавиши <ТаЬ> ведет к вставке текста, в том числе и нового оператора, с предложенным именем метода. Повторное нажатие клавиши <ТаЬ> ведет к вставке метода, действительно обрабатывающего событие, с любым введенным именем. Очень часто достаточно будет просто два раза нажать клавишу <ТаЬ>, но в данном случае, прежде чем второй раз нажать клавишу <ТаЬ> не забудьте изменить имя метода на textBoxEmptyValidating, чтобы один и тот же метод обрабатывал оба события.

В отличие от ранее рассмотренного обработчика события кнопки, обработчик события Validating является специализированной версией стандартного обработчика System.EventHandler. Это событие нуждается в специальном обработчике, поскольку в случае отрицательного результата проверки требуется способ предотвращения



1 ... 140 141 142 [ 143 ] 144 145 146 ... 396

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