Метод SetError компонента ErrorProvider позволяет вывести сообщение об ошибке рядом с элементом управления. Этот метод принимает имя элемента управления и текст сообщения об ошибке в качестве параметров; вызывают его так:
// Предполагается существование элемента управления nameTextBox
// и компонента ErrorProvider с именем myErrorProvider.
myErrorProvider. SetError(nameTextBox, "Name cannot be left blank!");
В результате исполнения этого кода поле nameTextBox отображает значок, а при наведении на этот элемент управления указателя мыши появляется всплывающая подсказка с заданным текстом.
Сообщение об ошибке разрешается задавать и во время проектирования Если изучить окно Properties после добавления на форму компонента ErrorProvider, нетрудно заметить, что у каждого элемента управления появилось новое свойство Error on х, где х — имя экземпляра ErrorProvider. Во время проектирования значение этого свойства задают через окно Properties, во время выполнения заданное таким образом значение отображается как сообщение об ошибке для данного элемента, Ряд свойств компонента ErrorProvider определяет способ отображения сообщения об ошибке. Свойство Icon задает значок, отображаемый после элемента управления. Одна форма может содержать несколько экземпляров ErrorProvider, например один, отображающий сообщения об ошибках, а другой — предупреждения, при этом каждому экземпляру ErrorProvider разрешается назначить собственный значок. Другое свойство этого компонента — BlinkStyle — заставляет значок мигать, частоту мигания определяет свойство BlinkRate.
Применение компонента ErrorProvider при создании обработчика события, проверяющего значение элемента управления
1. Создайте форму и добавьте к ней компонент ErrorProvider — он появится в области компонентов.
2. Установите в true свойство CausesValidation элемента управления, который должен выводить сообщения об ошибках, если это еще не сделано.
3. Добавьте к обработчику события Validating этого элемента управления код, проверяющий введенное в него значение. При помощи метода SetError установите текст сообщения, которое отображается, если при проверке введенного обнаружится ошибка. Вот пример обработчика, использующего экземпляр компонента ErrorProvider с именем my Error Provider; этот обработчик проверяет текстовое поле pswordTextBox:
private void pswordTextBox_Validating(object sender,
ponentModel. CancelEventArgs e)
{
// Проверить введенное значение,
if (pswordTextBox. Text == "")
{// Задать текст сообщения об ошибке ввода.
myErrorProvider. Set Error (pswordTextBox, "Password cannot be blank!");
}
else
{
// Если введено допустимое значение, очистить текст сообщения:
// поскольку ошибки нет, сообщение не выводится.
myErrorProvider. SetError{pswordTextBox, "");
}
}
Преобразование типов
Для преобразования типов используются следующие методы:
// преобразование текста в целое число
int balance = Convert. ToInt32(textBox1.Text);
// преобразование целого числа в текст
textBox1.Text = Convert. ToString(balance);
Процесс создания приложения заключается в выполнении следующих шагов:
1. Создать интерфейс приложения (перетащить все необходимые компоненты, настроить их свойства).
2. Настроить обработку событий необходимых компонент.
2.2. Практическое задание
Разработка приложения Virtual Doughnut Factory
В этом практикуме вы создадите пользовательский интерфейс для приложения Virtual Doughnut Factory на Visual C#. Это приложение предназначено для управления виртуальной пекарней, в которой выпекаются пончики, и магазином, где их продают. Практикум поможет вам закрепить навыки применения элементов управления, конструирования меню и реализации проверки вводимых данных.
Упражнение 1. Создание пользовательского интерфейса
В этом упражнении вы создадите пользовательский интерфейс, добавив к форме необходимые элементы управления.
Создание нового проекта
1. Выберите язык, с которым вы будете работать - Visual C#.
Создайте новый проект на основе шаблона Windows Application и назовите его Joe's Doughnut Factory.
2. В результате будет создан проект с одной формой. В окне Solution Explorer щелкните Forml — окно Properties покажет свойства этой формы. Поменяйте значение свойства File Name на frmMain.
3. Задайте для свойств формы значения, указанные в таблице 2-2.
Таблица 2-2. Свойства первой формы проекта

4. Найдите метод static void Main() и внесите в него следующие изменения:
Visual C#
static void Main()
{
Application. Run(new frmMain());
}
5. Добавьте к форме следующие элементы управления и задайте для них свойства, указанные в таблице 2-3.
Таблица 2-3. Элементы управления формы frmMain и их свойства



6. В окне Properties добавьте к набору элемента управления cmbType следующие строки: Raised-Glazed, Raised-Sugar, Raised-Chocolate, Cake-Plain, Cake-Chocolate, Cake-Sugar, Filled-Lemon, Filled-Grape, Filled-Custard.
Примерный вид готовой формы показан на рис. 2-11.

Рис. 2-11. Пользовательский интерфейс с добавленными элементами управления
Упражнение 2. Создание меню
Сейчас вы создадите меню приложения при помоши компонента MainMenu и напишете обработчик события Click для элемента меню Exit.
Добавление меню к проекту
1. Дважды щелкните на панели Toolbox компонент MamMenu — этот компонент отобразится в области компонентов, а на месте меню на форме появится прямоугольное поле.
2. Введите в прямоугольное поле строку &File.
К меню добавится элемент File, а снизу и справа от него появятся пустые прямоугольные поля. Задайте клавишу доступа для элемента меню при помощи знака «&». В окне Properties назовите созданный элемент меню mnuFile.
3. Повторяя пункт 2, создайте элементы меню, указанные в таблице 2-4. Вложенные элементы меню указаны в таблице с отступом, они располагаются ниже соответствующих родительских элементов.
Таблица 2-4. Элементы меню

Создание обработчика события Click для элемента меню Exit
1. В окне дизайнера дважды щелкните элемент меню Exit — откроется окно кода с шаблоном обработчика события mnuExit_Click.
2. Вставьте в шаблон вызов метода Close формы:
private void mnuExit_Click(object sender, System. EventArgs e)
{
this. Close();
}
3. Сохраните приложение и протестируйте его.
Упражнение 3. Создание обработчиков, проверяющих вводимые данные
Сейчас вы напишете простые обработчики, проверяющие значение текстового поля txtQuantity, Для этого воспользуйтесь компонентом ErrorProvider. В следующем практикуме вы добавите к форме дополнительные процедуры, проверяющие вводимые данные.
1. Дважды щелкните на панели Toolbox компонент ErrorProvlder — он появится в области компонентов.
2. В окне дизайнера выберите поле txtQuantity; в окне Properties щелкните кнопку Events и дважды щелкните событие KeyPress — в редакторе кода откроется шаблон обработчика события txtQuantity_KeyPress.
3. Добавьте к обработчику код, отображающий сообщение об ошибке при вводе в поле любых символов, кроме цифр.
private void txtQuantity_KeyPress(object sender, System. Windows. Forms. KeyPressEventArgs e)
{
if (Char, IsDigit(e. KeyChar) == false)
errorProvider1.SetError(txtQuantity, "Please enter a numeric value");
else
errorProvider1.SetError(txtQuantity, "");
}
4. В Solution Explorer щелкните правой кнопкой форму frmMain и выберите из контекстного меню команду View Designer. Выберите поле txtQuantity, в окне Properties щелкните кнопку Events, затем дважды щелкните событие Validating — редактор кода откроет шаблон обработчика соответствующего события.
5. Добавьте к обработчику код, проверяющий наличие в текстовом поле txtQuantity значение, а также допустимость введенного значения:
private void txtQuantity_Validating(object sender,
ponentModel. Cancel EventArgs e)
{// Проверить, пусто ли поле.
if (txtOuantity. Text == "")
{
errorProvider1.SetError(txtQuantity, "Please enter a quantity");
e. Cancel = true;
}
// Проверить, допустимо ли введенное значение,
else if (errorProviderl. GetError(txtQuantity) != "")
e. Cancel = true;
else
errorProviderl. SetError(txtQuantity, "");
3. Задания для самостоятельного выполнения
Выполнить задание согласно варианту:
Выбрать необходимые компоненты. Разработать алгоритм решения задачи. Разработать приложение.1.3. Задания для самостоятельного выполнения
Вариант | Задача |
1 | Даны три точки на плоскости. Определить, можно ли построить из них прямоугольный треугольник. |
2 | Составить программу для определения подобия двух треугольников. Треугольники задаются координатами своих вершин. |
3 | Даны два треугольника, заданные координатами своих вершин. Определите, какой треугольник имеет большую высоту. |
4 | Определить, лежит ли точка, заданная своими координатами на плоскости, вне области пересечения парабол y=2-ax2 и y=2ax2+b. |
5 | Определить, можно ли построить квадрат из четырех точек, заданных своими координатами на плоскости. |
6 | Даны три точки на плоскости, заданные своими координатами. Определить ближайшие из них. |
7 | Определить, пройдет ли кирпич в квадратное отверстие с заданной стороной. |
8 | Даны три точки на плоскости, заданные своими координатами. Определить наиболее удаленные из них. |
9 | Определить, можно ли построить ромб из точек, заданных своими координатами на плоскости. |
10 | Определить, поместится ли круг заданного радиуса в прямоугольник, заданный координатами своих вершин. |
Контрольные вопросы
1. Крупный банк заказал вам приложение, которое должно быть легким в освоении, бесшовно интегрироваться с Microsoft Office XP и иметь интерфейс, дизайн которого соответствует стилю банка (для воспитания у сотрудников банка корпоративной культуры). Как достичь поставленных целей? Покажите два способа создания интерфейса.
2. Вы создаете приложение, несколько форм которого имеют идентичный набор элементов управления. Как быстрее всего создать такие формы?
3. Каждый раз, когда форма получает фокус, должно отображаться приглашение на ввод значения. Опишите наилучшую стратегию для реализации подобной функциональности.
4. Как задать порядок передачи фокуса между элементами управления на форме по нажатию клавиши Tab? Приведите два способа решения этой задачи.
5. Для каких целей лучше использовать контекстное меню?
6. Объясните, что такое «проверка на уровне формы» и «проверка на уровне поля».
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 |


