Разработка Windows-форм с элементами контроля в среде
Microsoft Visual Studio. Net
Цель работы:Изучить основные элементы управления Windows-форм, их свойства и методы, а также получить практические навыки в разработке Windows-форм с элементами контроля
План проведения занятия
1. Изучить теоретический материал.
- Для формы FormEmployee создать требуемые элементы контроля.
- Разработать методы для задания режимов "Просмотр", "Редактирование" для элементов контроля, для управления активностью пунктов главного меню формы, контекстного меню и кнопок панели инструментов.
- Сформировать обработчик события Load.
- Протестировать программу.
Краткие теоретические сведения
ADO.NET - это новая технология доступа к базам данных, специально оптимизированная для нужд построения рассоединенных (disconnected) систем на платформе .NET. ориентирована на архитектуру многоуровневых приложений.
Подробно смотрите в приведенной ниже литературе.
Порядок выполнения работы
Задание 1.
Для формы FormEmployee создать требуемые элементы управления. Для разработки проекта приложения форма FormEmployee должна содержать элементы управления, в соответствии с видом, приведенном на рис. 11.1.
Рис. 11.1. Вид экранной формы FormEmployee
В этом задании сформируйте на данной форме элементы управления приведенные в табл.11.5.
Таблица 11.5
Элементы управления формы FormEmployee
Элемент контроля | Имя | Свойство Text/Items | Назначение |
SplitContainer | splitContainerEmployee | Две панели с разделителем | |
Label | labelListEmployee | Список сотрудников | Надпись |
listBox | listBoxEmployee | Список сотрудников | |
Label | labelSurname | Фамилия | Надпись |
Label | labelName | Имя | Надпись |
Label | labelPatronymic | Отчество | Надпись |
Label | labelJobRole | Должность | Надпись |
Label | labelStatus | Статус | Надпись |
Label | labelAccess | Уровень доступа | Надпись |
label | labelNetName | Сетевое имя | Надпись |
textBox | textBoxNetName | Сетевое имя | |
textBox | textBoxSurname | Фамилия | |
textBox | textBoxName | Имя | |
textBox | textBoxPatronymic | Отчество | |
comboBox | comboBoxJobRole | Должность | |
comboBox | comboBoxStatus | Активен, выходной, в отпуске, болеет, не работает, помечен как удаленный | Статус |
comboBox | comboBoxAccess | Оператор, старший оператор, начальник смены, администратор, аналитик | Уровень доступа |
menuItem | menuItemAction | Действие | Пункт меню "Редактировать" |
menuItem | menuItemUndo | Отменить | Подпункт меню "Отменить" |
menuItem | menuItemNew | Создать | Подпункт меню "Новый" |
menuItem | menuItemEdit | Изменить | Подпункт меню "Изменить" |
menuItem | menuItemSave | Сохранить | Подпункт меню "Сохранить" |
menuItem | menuItem | Удалить | Подпункт меню "Удалить" |
menuItem | menuItemReport | Отчет | Пункт меню "Отчет" |
menuItem | menuItemReport1 | По сотруднику | Подпункт меню "Отчет по сотруднику" |
menuItem | menuItemReport2 | По всем сотрудникам | Подпункт меню "Отчет по всем сотрудникам" |
1. Создайте на форме элемент SplitContainer рис. 11.2. На панели 1 создайте элементы управления labelListEmployee и listBoxEmployee рис.11.3, а остальные элементы управления, приведенные в табл. 11.5, - на панели 2 рис. 11.1.После создания на форме FormEmployee элементов управления в соответствии табл. 11.1 необходимо настроить порядок перехода между ними при нажатии клавиши Tab.
Рис. 11.2. Создание панелей на форме FormEmployee
Задайте последовательные номера свойству TabIndex элементов управления (в разрабатываемой форме это необходимо сделать для элементов управления TextBox и ComboBox) из окна Properties (рис.11.4)
Рис. 11.4. Задание свойства TabIndex для элемента контроля
Так же для задания последовательных номеров свойству TabIndex элементов управления вызвать мастер Tab Order Wizard из меню View/Tab Order рис.11.5. Задание последовательности значений свойству TabIndex производится щелчком мыши на элементах управления в заданной последовательности.
Рис. 11.5.Настройка перехода по элементам управления
Результат настройки порядка перехода между элементами управления при нажатии клавиши Tab приведен на рис. 11.6.
2. Разработать методы для задания режимов "Просмотр", "Редактирование" для элементов контроля.
Создайте методы для работы с формой создайте методы, которые разрешают только просматривать форму (режим просмотра) и редактировать форму (режим редактирования).
Рис. 11.6. Результат работы мастера Tab Order Wizard
3. Разработать методы для задания режимов "Просмотр", "Редактирование" для управления активностью пунктов главного меню формы, контекстного меню и кнопок панели инструментов.
Создадать метод для задания режима просмотра формы DisplayReadOnly. Метод DisplayReadOnly должен быть общедоступным, ничего не должен возвращать и не иметь параметров. Для задания режима просмотра (только для чтения) объекту класса TextBox свойству ReadOnly присвойте значение true, а для объекта класса comboBox - свойству Enabled значение false. Код метода DisplayReadOnly представлен далее:
public void DisplayReadOnly(){this.textBoxSurname.ReadOnly = true;this.textBoxName.ReadOnly = true;this.textBoxPatronymic.ReadOnly = true;this.textBoxNetName.ReadOnly = true;this.comboBoxJobRole.Enabled = false;this.comboBoxStatus.Enabled = false;this.comboBoxAccess.Enabled = false;}4. Сформируйте метод DisplayEdit аналогичным образом, который задает режим редактирования формы:
/// Задание режима редактированияpublic void DisplayEdit(){this.textBoxSurname.ReadOnly = false;this.textBoxName.ReadOnly = false;this.textBoxPatronymic.ReadOnly = false;this.textBoxNetName.ReadOnly = false;this.comboBoxJobRole.Enabled = true;this.comboBoxStatus.Enabled = true;this.comboBoxAccess.Enabled = true;}5. Сформировать обработчик события Load.
Для управления режимом доступности (только для чтения/редактирование) формы FormEmployee необходимо метод DisplayReadOnly вызывать при первоначальной загрузке формы (событие Load), при создании новых данных по сотруднику и при редактировании данных по сотруднику, а метод DisplayEdit - при сохранении данных по сотруднику и при отмене режима редактирования данных.
6. Проверьте правильность режима управления доступностью элементов управления формы FormEmployee.
Анализ кодов методов DisplayReadOnly( ) и DisplayEdit( ) показывает, что они могут быть объединены в один метод с параметром.
7. Необходимо самостоятельно написать объединенный метод, получив в результате метод DisplayReadOnly(bool readOnly), в котором параматр readOnly определяет режим редактирования: если readOnly равен true, то режим только для просмотра, если равен false, то - редактирование.
В процессе работы приложения необходимо управлять доступом к пунктам меню формы FormEmployee.
При выборе в главном меню приложения пункта "Сотрудник" Windows-форма FormEmployee должна перейти в режим "Просмотр", что определяет доступ к пунктам меню "Создать", "Редактировать", "Удалить" и запрет доступа к подпунктам меню "Отменить", "Сохранить".
Если в режиме просмотр выбирается подпункт меню "Удалить", то в результате выполнения данной функции режим Windows-формы FormEmployee не должен измениться, т.е. форма должна остаться в режиме "Просмотр".
Если в режиме просмотр выбирается подпункт меню "Изменить", то Windows-формы FormEmployee должна перейти в режим "Редактирование". Данный режим предполагает, что разрешается доступ к подпунктам меню "Отменить", "Сохранить" и запрещается доступа к подпунктам меню "Создать", "Редактировать", "Удалить".
Аналогичным образом интерпретируются переходы формы FormEmployee из одного режима в другой. Такие же режимы необходимо соблюдать для контекстного меню и кнопок панели инструментов.
Для управления доступом к пунктам главного меню создайте методы MenuItemEnabled(bool itemEnabled), для контекстного меню – MenuItemContextEnabled (bool itemEnabled) и для кнопок панели управления – StripButtonEnabled(bool itemEnabled).
Управление доступностью пунктов главного и контекстного меню осуществляется через свойство Enabled класса ToolStripMenuItem, а кнопок панели управления - через свойство Enabled класса ToolStripButton.
Проверьте правильность режима управления пунктов главного и контекстного меню, а также кнопок панели управления формы FormEmployee.
С учетом того, что установка режимов просмотра и редактирования экранной формы, а также управление доступом к пунктам меню должно выполняться при реализации нескольких функций программы целесообразно для избежания дублирования кода все методы управления режимами объединить в один метод DisplayForm.
private void DisplayForm(bool mode){DisplayReadOnly(mode);MenuItemEnabled(mode);MenuItemContextEnabled(mode);StripButtonEnabled(mode); }Первоначальная установка режима "Просмотр" должна проводиться при первоначальной загрузке формы FormEmployee.
Содержание отчета
1. Создание требуемых элементов контроля для формы FormEmployee
2. Разработка методов для задания режимов "Просмотр", "Редактирование" для элементов контроля.
3. Разработка методов для задания режимов "Просмотр", "Редактирование" для управления активностью пунктов главного меню формы, контекстного меню и кнопок панели инструментов.
4. Формирование обработчиков события Load.
5. Тестирование программы.
Контрольные вопросы
1. Что представляет собой элемент управления TextBox ?
2. Для чего предназначен метод ButtonBase ?
3. Элемент управления CheckedListBox предназначен для?
4. Какой объект позволяет пользователю производить выбор заранее определенных элементов?
5. С помощью, каких объектов устанавливается дата?
Литература3-4, 11-12].
Лабораторная работа №12