Проектирование элементов управления формы FormEmployee

Для разработки проекта приложения форма FormEmployee должна содержать элементы управления, в соответствии с видом, приведенном на рисунке 7.4.

Рис. 7.4. Вид экранной формы FormEmployee

 

На данной форме необходимо сформировать элементы управления, приведенные в таблице 7.14.

Таблица 7.14. Элементы управления формы 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 По всем сотрудникам Подпункт меню "Отчет по всем сотрудникам"

 

Вначале создайте на форме элемент SplitContainer (рисунок 7.5). На панели 1 создайте элементы управления labelListEmployee и listBoxEmployee (рисунок 7.6), а остальные элементы управления, приведенные в таблице 7.14, - на панели 2 (рисунок 7.4).

После создания на форме FormEmployee элементов управления в соответствии с таблицей 7.14 необходимо настроить порядок перехода между ними при нажатии клавиши Tab.

Рис. 7.5. Создание панелей на форме FormEmployee

Рис. 7.6. Формирование элементов управления на панели 1 формы FormEmployee

Для этого необходимо задать последовательные номера свойству TabIndex элементов управления (в разрабатываемой форме это необходимо сделать для элементов управления TextBox и ComboBox) из окна Properties (рисунок 7.7) или вызвать мастер Tab Order Wizard из меню View/Tab Order (рисунок 7.8). Задание последовательности значений свойству TabIndex производится щелчком мыши на элементах управления в заданной последовательности.

Рис. 7.7. Задание свойства TabIndex для элемента контроля

Рис. 7.8. Настройка перехода по элементам управления

Результат настройки порядка перехода между элементами управления при нажатии клавиши Tab приведен на рисунке 7.9.

Для работы с формой необходимо создать методы, которые разрешают только просматривать форму (режим просмотра) и редактировать форму (режим редактирования).

Рис. 7.9. Результат работы мастера Tab Order Wizard

Создадим метод для задания режима просмотра формы 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;}

Аналогичным образом сформируем метод 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;}

Для управления режимом доступности (только для чтения/редактирование) формы FormEmployee необходимо метод DisplayReadOnly вызывать при первоначальной загрузке формы (событие Load), при сохранении данных по сотруднику и при отмене режима редактирования данных, а метод DisplayEdit - при создании новых данных по сотруднику и при редактировании данных по сотруднику.

Проверьте правильность режима управления доступностью элементов управления формы FormEmployee.

Анализ кодов методов DisplayReadOnly() и DisplayEdit() показывает, что они могут быть объединены в один метод с параметром. Необходимо самостоятельно написать объединенный метод, получив в результате метод DisplayReadOnly(bool readOnly), в котором параматр readOnly определяет режим редактирования: если readOnly равен true, то режим только для просмотра, если равен false, то - редактирование.

В процессе работы приложения необходимо управлять доступом к пунктам меню в соответствии с диаграммой состояний для пунктов меню формы FormEmployee, приведенной на рисунке 7.10.

Рис. 7.10. Диаграмма состояний для активности подпунктов меню "Действие"

 

Диаграмма отображает возможные переходы между тремя режимами: "Просмотр", "Редактирование" и "Создание нового сотрудника".

При выборе в главном меню приложения пункта "Сотрудник" Windows-форма FormEmployee должна перейти в режим "Просмотр", что определяет доступ к пунктам меню "Создать", "Редактировать", "Удалить" и запрет доступа к подпунктам меню "Отменить", "Сохранить".

Если в режиме просмотр выбирается подпункт меню "Удалить", то в результате выполнения данной функции режим Windows-формы FormEmployee не должен измениться, т.е. форма должна остаться в режиме "Просмотр".

Если в режиме просмотр выбирается подпункт меню "Изменить", то Windows-формы FormEmployee должна перейти в режим "Редактирование". Данный режим предполагает, что разрешается доступ к подпунктам меню "Отменить", "Сохранить" и запрещается доступа к подпунктам меню "Создать", "Редактировать", "Удалить".

Аналогичным образом интерпретируются переходы формы FormEmployee из одного режима в другой.

На рисунке 7.10 представлены режимы и переходы для подпунктов главного меню. Аналогичные режимы необходимо соблюдать для контекстного меню и кнопок панели инструментов.

Для управления доступом к пунктам главного меню создайте методы 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.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: