Вы находитесь на странице: 1из 6

Тыщенко Е.А.

преподаватель БПОУ ОО «СПК»

ПРАКТИЧЕСКАЯ РАБОТА

Диалоговое окно вывод данных MessageBox

Цель работы: изучить структуру класса MessageBox, назначение и виды диалоговых


окон; научиться создавать оконные приложения с помощью диалогового окна MessageBox.

Диалоговое окно – это набор управляющих элементов, с помощью которых упрощается


процесс ввода данных. Для создания простых диалоговых окон используется класс MessageBox.
Более сложные диалоговые окна создаются на основе форм.
Класс MessageBox
Для вывода сообщения в классе MessageBox предусмотрен метод Show, который имеет
различные версии и может принимать ряд параметров. Рассмотрим одну из наиболее
используемых версий:

public static DialogResult Show(


string text, // Текст сообщения
string caption, // Текст в заголовке окна
MessageBoxButtons buttons, // Кнопки в клиентской области окна
MessageBoxIcon icon, // Значок окна сообщения
MessageBoxDefaultButton defaultButton, // кнопка, на которую по умолчанию
устанавливается фокус
MessageBoxOptions options //параметры окна сообщения

Находящиеся в клиентской области диалогового окна кнопки, которые будет нажимать


пользователь для закрытия окна, задаются константой перечислимого типа MessageBoxButtons
(таблица 1). В зависимости от выбора окно сообщения может иметь от одной до трех кнопок.

Таблица 1 - Кнопки, размещаемые в диалоговом окне


Наименование кнопок Константа
Стоп, Повтор, Пропустить MessageBoxButtons.AbortRetryIgnore
ОК MessageBoxButtons.OK
ОК, Отмена MessageBoxButtons.OKCancel
Повтор, Отмена MessageBoxButtons.RetryCancel
Да, Нет MessageBoxButtons.YesNo
Да, Нет, Отмена MessageBoxButtons.YesNoCancel

Значок (пиктограмма), информирующая пользователя о характере выводимого текста


(напоминание, предупреждение, запрет и т.п.), задается константой перечислимого типа
MessageBoxIcon (таблица 2).
Таблица 2 - Пиктограммы, помещаемые в диалоговое окно
Константа
Вид и наименование пиктограммы
MessageBoxIcon.Asterisk
информирование MessageBoxIcon.Information
MessageBoxIcon.Error
ошибка, запрет, стоп MessageBoxIcon.Hand
MessageBoxIcon.Stop
MessageBoxIcon.Exclamation
предупреждение MessageBoxIcon.Warning
MessageBoxIcon.Question
ожидание ответа
Тыщенко Е.А. преподаватель БПОУ ОО «СПК»

Отсутствие пиктограммы MessageBoxIcon.None


В диалоговом окне с помощью константы перечислимого типа MessageBoxDefaultButton
(таблица 3) можно указать кнопку, которая будет закрывать окно нажатием клавиши Enter, если
пользователь не желает выбирать одну из имеющихся в окне кнопок с помощью мыши или
клавиши Tab.

Таблица 3 - Кнопки, выбираемые по умолчанию в диалоговом окне


Кнопка Константа
Первая из находящихся в диалоговом окне MessageBoxDefaultButton.Button1
Вторая из находящихся в диалоговом окне MessageBoxDefaultButton.Button2
Третья из находящихся в диалоговом окне MessageBoxDefaultButton.Button3
Из всех аргументов, указанных в вышеприведенном прототипе метода
MessageBox.Show(), обязательным является только первый аргумент, задающий текст,
выводимый в клиентской области окна.

Примеры

1. MessageBox.Show("Диалоговое окно 1");

2. MessageBox.Show("Диалоговое окно 2","Пример 2");

3. MessageBox.Show("Диалоговое окно 3","Пример 3",


MessageBoxButtons::YesNoCancel);

4. MessageBox.Show("Диалоговое окно 4","Пример 4",


MessageBoxButtons.RetryCancel,
MessageBoxIcon.Warning);

5. MessageBox::Show("Диалоговое окно 5","Пример 5",


MessageBoxButtons.AbortRetryIgnore,
MessageBoxIcon.Error,
MessageBoxDefaultButton.Button2);

6. int exNum = 6; // Номер окна и примера


// Задать значения аргументам метода
MessageBox.Show()
string.text = "Диалоговое окно " + exNum;
string caption = "Пример " + exNum;
MessageBoxButtons buttons = MessageBoxButtons.YesNo;
MessageBoxIcon icon = MessageBoxIcon.Information;
// Переменная для сохранения результата выполнения
Тыщенко Е.А. преподаватель БПОУ ОО «СПК»

метода
DialogResult result;
// Открыть диалоговое окно
result = MessageBox.Show(text, caption, buttons, icon);
// Определить, какая кнопка была нажата в диалоговом
окне
if ( result == DialogResult.Yes )
{
// Закрыть родительское окно, если нажата кнопка ДА
this.Close();
}
Запрет ввода символов и букв
1 способ public void textBox1_KeyDown(object sender, KeyEventArgs e)
{
char s = Convert.ToChar(textBox1.Text);
if ((s <= '0') || (s >= '9'))
MessageBox.Show("Вы ввели символ! Введите цифру");
}

2 способ private void textBox_KeyPress(object sender, KeyPressEventArgs e)


{
if ( ! (char.IsDigit(e.KeyChar) || char.IsControl(e.KeyChar)) )
e.Handled = true;
}

Запрет ввода всего кроме русских букв


private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
{
if (!Char.IsDigit(e.KeyChar) && e.KeyChar!=8)
e.Handled = true;
}
else if (key.KeyChar >= 'Ё' && key.KeyChar <= 'ё')
{
sb.Append(key.KeyChar);
Console.Write(key.KeyChar);
}
Ввод только русских букв, backspace и '.' в textbox

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)


{
char s = e.KeyChar;
if ((s < 'А' || l > 'я') && s != '\b' && s != '.')
{
e.Handled = true;
}
}
Тыщенко Е.А. преподаватель БПОУ ОО «СПК»

ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО ВЫПОЛНЕНИЯ

Внимание!
 Все задания выполняются в одном проекте.
 Форма должна иметь общее название.
 Использовать элемент управление tabControl.
 Каждая вкладка должна иметь свое название, соответствующее
заданию.
 Изменить иконку формы.
 При вводе данных (где это необходимо) установить проверку на
правильность ввода данных.

ЗАДАНИЕ 1. Приветствие
1.1 Разработать приложение, которое
спрашивает имя пользователя.
Пользователь будет вводить свое имя, а
приложение будет с ним здороваться,
выводя сообщение: «Привет, {Имя}!».

1.2 Усложнение проекта


 Вывести на экран следующее
сообщение: «Меня зовут <Имя
пользователя>.
 Мне <Возраст пользователя> лет. Когда
мне будет {Возраст пользователя+10}
лет я хочу быть успешным
Программистом.»
(Примечание: В угловых скобках данные
вводит пользователь, в фигурных – считает
сама программа).
 Приложение должно быть
многозадачным (очистка полей).

ЗАДАНИЕ 2. Идентификация пользователя


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

 Измените название формы на «Идентификация пользователя».


Тыщенко Е.А. преподаватель БПОУ ОО «СПК»

 Добавить метку label1, поле для ввода


textBox1 и pictureBox1, указав в свойстве
Image путь к изображению.
 Двойным нажатием на кнопку Ok
переходим в редактор кода
 Замените, символы пароля при вводе *.
 Реализуйте возможность просматривать
введенный пароль, по нажатию на
кнопку.
 Предположим, что идентификацию может проходить ограниченное число
раз. Разрешите пользователю сделать 3 попытки. После чего выведите
сообщение, что попытки закончились.
 Добавьте код, который при нажатии кнопки ОК, в диалоговом окне, весь
проект будет закрыт (с вопросом: Вы действительно хотите выйти их
проекта?).

ЗАДАНИЕ 3. Угадайка

Разработать приложение Угадайка. Компьютер загадывает случайное


число в интервале от 0 до 100.
Пользователь вводит число на форме, пытаясь его угадать.
Программа соответственно отвечает, введенное число больше числа,
которое загадано, или меньше.
Указания:
 Вывод сообщений о результате угадывания
выводить в окне MessageBox. Например: если
компьютер загадал число 45, а пользователь
ввел число 50, то программа должна ответить:
"Меньше" или "Больше". Если числа
совпадают, то выдается сообщение угадал
иначе - Не угадал.
 Ограничьте игрока в количестве попыток (10
попыток).
 Подберите картинку оформления формы, а также цвета кнопок и меток
так, чтобы интерфейс программы был красивым.
 Отобразите на форме картинку, по результату попытки (например,
веселый смайлик угадал, грустный- нет).
Тыщенко Е.А. преподаватель БПОУ ОО «СПК»

ЗАДАНИЕ 4. Улитка

Исходные данные: по дереву ползет улитка. Пользователь вводит


высоту дерева и начальное положение улитки над уровнем земли (в
сантиметрах).
Затем вводятся данные о погоде в течение недели в следующем формате:
1 – если день был солнечный, 0 – если пасмурный.
В солнечный день улитка поднимается на 10 см. вверх по дереву, в
пасмурный – опускается на 5 см.
Программа должна определить конечное положение улитки по истечении
недели.
Указания:
 Данные о погоде хранятся в
одномерном массиве (их надо
отобразить на форме).
 Результат вывести в MessageBox.
Предусмотреть контроль ввода данных
в массив и поля ввода данных (ввод только
числовых значений).
 Картинку улитки вывести на форму.

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Дайте характеристику каждому элементу управления, применяемому в


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

Вам также может понравиться