Книга: Программирование КПК и смартфонов на .NET Compact Framework
Создание собственных диалоговых окон
Разделы на этой странице:
Создание собственных диалоговых окон
Сложные приложения часто используют несколько форм. Например, во многих программах имеется диалоговое окно О программе
, в котором отображаются информация о программе, номер версии, сведения об авторе и логотип компании.
Для создания подобных форм хорошо подойдет собственное диалоговое окно. Чтобы отобразить такое окно, используется метод ShowDialog
. Этот метод делает недоступным родительскую форму, пока диалоговое окно находится на экране. Диалоговое окно может возвращать результат вызова метода ShowDialog
не только себе, но и родительскому окну.
Предположим, что нужно создать специальное окно авторизации пользователя для доступа к программе. В состав проекта нужно включить новую форму, которая будет реализована как диалоговое окно проверки имени пользователя LogonForm
. Это будет маленькое окно без четко очерченной границы. В нем надо разместить текстовое поле и две кнопки. Затем надо задать значения свойств FormBorderStyle
, Size
и Location
. При загрузке основной формы и обработке события Load
создается новый экземпляр объекта LogonForm
и вызывается как диалоговое окно. Данное окно может вернуть значения DialogResult.OK
, если пользователь ввел имя, или DialogResult.Cancel
, если он просто закрыл форму. Если было введено правильное имя, то главная форма продолжает свою работу. В противном случае приложение следует закрыть. Соответствующий код приведен в листинге 7.3.
ВНИМАНИЕ
Чтобы элементы управления диалогового окна были доступны вызывающей форме, их надо объявить с модификатором public. По умолчанию используется модификатор private.
Листинг 7.3
private void Form1_Load(object sender, EventArgs e) {
LogonForm LogonFrm = new LogonForm();
if (LogonFrm.ShowDialog() == DialogResult.Cancel) {
LogonFrm.Dispose();
this.Close();
} else {
this.Text += " - " + LogonFrm.txtCheck.Text;
LogonFrm.Dispose();
}
}
После того как форма авторизации будет отображена на экране, нужно обработать события Click
для нажатия кнопки проверки введенного имени пользователя или кнопки отмены. Первая кнопка проверяет правильность ввода имени. Если проверка завершилась успешно, то возвращается значение DialogResult.OK
. Это иллюстрирует код, приведенный в листинге 7.4.
Листинг 7.4
private void butOK_Click(object sender, EventArgs e) {
if (txtCheck.Text == "Alex") {
this.DialogResult = DialogResult.OK;
} else {
MessageBox.Show("В доступе отказано. Попробуйте еще раз",
"Вход в программу");
}
}
Если пользователь не знает имени для доступа к программе, то ему придется нажать кнопку Отмена
. В этом случае обработчик события butCancel_Click
, код которого приведен в листинге 7.5, возвращает значение DialogResult.Cancel
в главную форму, которая закрывает приложение.
Листинг 7.5
private void butCancel_Click(object sender, System.EventArgs e) {
this.DialogResult = DialogResult.Cancel;
}
- Создание файлов с блокировкой
- Создание свободно позиционируемых элементов
- 12. Лекция: Создание приложений с графическим интерфейсом пользователя.
- Создание объектов Collection
- 7.4.2.4. Создание своего первого LiveCD
- 4.2. Создание трехмерной модели и построение горизонтальной проекции детали
- 7.4.2. Создание собственного LiveCD
- Создание пользователя и группы на рабочей станции
- Создание корня документа:
- Создание многофайловой базы данных
- Создание форм с несколькими вкладками
- Создание ярлыков в специальных папках