Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція 07. Стандартні компоненти- модальні вікн...docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
76 Кб
Скачать
☆

7.7.2. Обробка події зміни файлу

При кожній дії з текстом у вікні генерується подія TextChanged, її обробка полягає у встановленні глобальної змінної в true. Перевірка значення цієї змінної виконується при завершенні роботи.

//Текст у вікні редактора змінився - обробник події TextChanged

private void textBox1_TextChanged(object sender, EventArgs e)

{

docChanged = true;

}

7.7.3. Закриття вікна у заголовку форми

При закритті форми через системну кнопку у заголовку форми генерується подія FormClosing. Для того, щоб зв'язати обробник з подією, потрібно його встановити у вікні подій форми для цієї події. Тоді при закритті форми буде перевірятися, чи змінювався текст у вікні.

Лістинг 7.9.

// Користувач натиснув на формі кнопку "Закрити вікно" у Заголовку

private void Form1_FormClosing(object sender, FormClosingEventArgs e)

{

if (docChanged)

{

DialogResult dr;

dr = MessageBox.Show("Зберегти зміни?", "NkEdit",

MessageBoxButtons.YesNoCancel,

MessageBoxIcon.Warning);

switch (dr)

{

case DialogResult.Yes:

if (SaveDocument() != 0)

// користувач відмінив операцію збереження файлу

e.Cancel = true; // відмінити закриття вікна програми

break;

case DialogResult.No: ;

break;

case DialogResult.Cancel:

// відмінити закриття вікна програми

e.Cancel = true;

break;

};

}

}

7.8. Виведення повідомлень - MessageBox

Для виведення діагностичних повідомлень використовується стандартний статичний клас MessageBox.

Метод Show цього классу виводить текст повідомлення користувачу.

Приклад:

MessageBox. Show(“Hello!”);

Прототип методу має вигляд:

public static DialogResult Show(string message);

Метод Show повертає результат типу DialogResult.

Коли користувач клацає кнопку ОК, метод Show повертає значення, рівне DialogResult.OK. Це значення можна використати в програмі для перевірки дій користувача (яку кнопку він натиснув, щоб закрити форму).

Існує багато перегружених методів класу MessageBox.Show. Крім тексту повідомлення, можна задати інші параметри, наприклад, параметр caption дозволяє задати текст заголовка діалогового вікна MessageBox.

За допомогою параметра btns можна вказати, які кнопки необхідно розташувати у вікні діалогового вікна. Цей параметр задається константами з переліку MessageBoxButtons (табл. 7.1).

Таблиця 7.1. Можливі значення параметра btns

Константа

Кнопки, які відображаються у вікні MessageBox

ОК

OK

OKCancel

OK, Cancel

YesNo

Yes, No

YesNoCancel

Yes, No, Cancel

RetryCancel

Retry, Cancel

AbortRetryIgnore

Abort, Retry, Ignore

Параметр icon методу MessageBox.Show дозволяє вибрати один з декількох значків для розташування в лівій частині діалогового вікна. Він задається у вигляді константи з переліку MessageBoxIcon (рис. 7.1):

Константа

Значок

Asterisk, Information

Error, Stop

Exclamation, Darning

Question

None

Значок не виводиться

Рис. 7.1. Можливі значення MessageBoxIcon

Параметр defButton методу MessageBox.Show призначений для вибору кнопки, яка отримає фокус відразу після відображення діалогового вікна. Цей параметр повинен мати одне із значень з переліку MessageBoxDefaultButton (табл. 7.2):

Таблиця 7.2. Можливі значення MessageBoxDefaultButton

Константа

Номер кнопки, яка одержує фокус вводу за замовчанням

Button l

1

Button 2

2

Button 3

3

Якщо в діалоговому вікні відображаються кнопки Yes, No і Cancel, то вони будуть пронумеровані послідовно: кнопка Yes отримає номер 1 (константа Button1), кнопка No - номер 2 (константа Button2), а кнопка Cancel - номер 3 (константа Button3).

Якщо у вікні MessageBox є декілька кнопок, то для того, щоб визначити, яку кнопку клацнув користувач, програма повинна проаналізувати значення, яке повертає метод MessageBox.Show.

Метод MessageBox.Show може повернути одне з декількох значень з переліку DialogResult (табл.7.3):

Таблиця 7.3. Можливі значення DialogResult

Константа

Кнопка, при виборі якої повертається ця константа

Abort

Abort

Cancel

Cancel

Ignore

Ignore

No

No

None

Модальне вікно діалогу продовжує працювати

OK

OK

Retry

Retry

Yes

Yes

Приклад:

DialogResult result = MessageBox.Show(" Видалити дані \n по працівнику? ",

"Попередження", MessageBoxButtons.YesNo, MessageBoxIcon.Warning,

MessageBoxDefaultButton.Button2);

Висновки

Для прискорення створення програм в Visual Studio використовується багато стандартних компонентів, доступ до яких реалізується через їхні інтерфейси. Ці інтерфейси реалізовані у вигляді полів і методів відповідних класів, з якими може працювати програма. Прикладом таких компонентів є стандартні вікна діалогу, вікна виведення діагностичних повідомлень. Ці готові компоненти є наочним прикладом застосування компонентного підходу, реалізованого в .Net Framework.

Контрольні питання і завдання для самостійного виконання

  1. В якій змінній повертається результат роботи стандартного вікна діалогу?

  2. Яким чином реалізувати зберігання даних в файлі? Яке вікно діалогу для цього використати?

  3. Яким чином можна встановити фільтр для огляду певних типів файлів? Яку властивість і якого класу потрібно налаштувати?

  4. Яку властивість потрібно задати для того, щоб вивести назву файлу у вікні діалогу?

  5. Як реалізувати діалог відкриття файлу?

  6. Як реалізувати діалог збереження файлу?

  7. Як реалізувати діалог роботи із шрифтами?

  8. Як реалізувати друкування файлу?

  9. Як реалізувати попередній перегляд файлу?

  10. Як реалізувати виведення вікна повідомлення про помилку, в якому розміщений заголовок «Помилка», текст повідомлення, значок і кнопка ОК?