Программирование >>  Обработка исключительных ситуаций 

1 ... 105 106 107 [ 108 ] 109 110 111 ... 142


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

Для сохранения информации о том, как было закрыто окно, у кнопки определяют свойство DialogResult. Это свойство может принимать стандартные значения из перечисления DialogResult, определенного в пространстве имен System. Wi ndows. Forms. Значения перечисления приведены в табл. 14.5.

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

Поле ввода TextBox

Компонент TextBox позволяет пользователю вводить и редактировать текст, который запоминается в свойстве Text. Можно вводить строки практически неограниченной длины (приблизительно до 32 ООО символов), корректировать их, а также вводить защищенный текст (пароль) путем установки маски, отображаемой вместо вводимых символов (свойство PasswordChar). Для обеспечения возможности ввода нескольких строк устанавливают свойства Multiline, Scrol 1 Bars и Wordwrap. Доступ только для чтения устанавливается с помощью свойства Readonly.

Элемент содержит методы очистки (Clear), выделения (Select), копирования в буфер (Сору), вставки из него (Paste) и др., а также реагирует на множество событий, основными из которых являются KeyPress и KeyOown.

Рассмотрим создание простого приложения, в котором использованы компоненты типа Label, Button и TextBox. Главное окно приложения показано на рис. 14.7.


Рис. 14.7. Окно приложения Диагностика кармы

Пользователь вводит число и нажимает клавишу Enter, после чего введенное значение сравнивается с числом, задуманным генератором случайных чисел. Если пользователь не угадал, выводится сообщение Не угадали! . Каждое следующее сообщение для наглядности немного сдвигается вправо относительно предыдущего. После совпадения выводится итоговое сообщение, и фокус ввода передается на кнопку Еще раз (рис. 14.8). Коэффициент невезучести определяется как количество попыток, деленное на максимально возможное значение числа.

Создание приложения начинается с проектирования его интерфейса. На форме располагаются метки, поля ввода и кнопка. В окне свойств их свойству Text задаются перечисленные в табл. 14.6 значения (в окне отображаются свойства в1де-ленного элемента; элемент выделяется щелчком мыши).



Глава 14. Введение в программирование под Windows


Рис. 14.8. Окно приложения после ввода правильного ответа

Таблица 14.6. Значение свойства Text для компонентов приложения Компонент Значение свойства Text

Forml Диагностика карм1

label 1 Введдите число

label2, label3, textBoxl Пустое значение1

buttonl Еще раз

Поведение приложения задается в обработчиках событий. Число надо загадывать до того, как пользователь введет первый ответ, а затем после каждого щелчка на кнопке Еще раз. Следовательно, эти действия должны выполняться при загрузке формы (событие Load) и щелчке на кнопке (событие CI i ck). Ответ пользователя анализируется при нажатии клавиши Enter после ввода числа (событие KeyPress элемента textBoxl).

Вызов редактора программ выполняется двойным щелчком рядом с соответствующим событием элемента на вкладке Events окна свойств (см. рис. 14.5). Для хранения загаданного числа и ответа пользователя применяются поля i и к. В константе max хранится максимально возможное число. Переменная rnd представляет собой экземпляр генератора случайных чисел .

Сокращенный текст программы с комментариями приведен в листинге 14.3.

Листинг 14.3. Программа Угадай число

using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data;

Необходдимо стереть значение, заданное по умолчанию. Класс Bandcm описан в одноименном разделе (см. с. 148).



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

namespace WindowsApplicationl {

public class Forml : Form

private Label labell:

private TextBox textBoxl;

private Button buttonl;

private Label label2;

private Label label3;

private Container components = null;

public FormlO { ... }

protected override void Dispose( bool disposing ){...} Windows Form Designer generated code { ... }

const int max - 10; максимальное значение загадываемого числа Random rnd; экземпляр генератора случайных чисел

int i, k; II загадка и отгадка

static void MainO { ... }

private void Forml Load(object sender, EventArgs e)

rnd = new RandomO;

i = rnd.Next(max); загадано число в диапазоне от 0 до max

private void textBoxl KeyPress(object sender, KeyPressEventArgs e)

int n;

if ( e.KeyChar != (char)13 )

return; если нажата не клавиша Enter, выйти

try преобразование ввода пользователя в число

n = Convert.ТоInt32(textBoxl.Text);

catch

n = -1; если введено не число, принять за неверный ответ

if ( n != i ) = = = = = = = = = = пользователь не угадал

label 2.Left += 5; label2.Text = He угадали! ; textBoxl. ClearO;

k++; увеличение счетчика попыток

buttonl.Visible = false;

} продолжение



1 ... 105 106 107 [ 108 ] 109 110 111 ... 142

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