Формирование однотипного представления информации

Для детального представления информации о сотруднике в разработанной форме используются элементы управления textBox, comboBox и dateTimePicker. В режиме "только для чтения" элементы управления отображают информацию по разному (рисунок 12.2). Так для элементов управления comboBox и dateTimePicker текст отображается более блекло, по сравнению с элементами управления textBox. С целью унификации отображения информации для конечного пользователя проведем модификацию формы FormEmployee.

Шаг.5. Изменим отображение должности сотрудника. Для этого добавим к форме элемент управления textBox (свойство name = textBoxJobRole) и расположим его на форме так, что бы он закрывал имеющийся на форме элемент управления comboBoxJobRole (рисунок 12.3).

 

Рис. 12.3. Экранная форма с добавленным элементом textBoxJobRole

 

Шаг.6. Добавленный элемент управления textBoxJobRole должен отображаться на форме в режиме "только для чтения" и содержать информацию о должности сотрудника. Введем изменения в метод DisplayReadOnly для управления режимом отображения элементом управления textBoxJobRole (см. лабораторную работу 7).

Шаг.7. Должность сотрудника в разработанной программе отображается элементом управления comboBoxJobRole, который связан с DateSet - dsEmployee. Синхронизацию отображения информации на элементах управления comboBoxJobRole и textBoxJobRole осуществим через событие "изменение выбранного индекса в списке" - SelectedIndexChanged элемента управления comboBoxJobRole. Листинг обработчика данного события имеет следующий вид.

private void comboBoxJobRole_SelectedIndexChanged(object sender, EventArgs e){ textBoxJobRole.Text = comboBoxJobRole.Text;}

Шаг.8. Откомпилируйте программу и протестируйте правильность отображения информации в элементе управления textBoxJobRole.

Шаг.9. В режимах редактирования и создания новой записи, если вводится новое значение должности, должен отображаться элемент управления comboBoxJobRole, но только на момент ввода данных. При этом необходимо обеспечить возможность ввода должности из списка имеющихся в справочнике системы должностей. Это необходимо обеспечить при переходе курсора в поле ввода должности сотрудника. Для реализации такого режима сформируем событие Click элемента управления textBoxJobRole. Для события Click добавим в текст программы метод обработчика события:

private void textBoxJobRole_Click(object sender, EventArgs e){ if (!textBoxJobRole.ReadOnly) { textBoxJobRole.Visible = false;   comboBoxJobRole.Visible = true;   comboBoxJobRole.Focus(); }}

Шаг.10. После ввода должности сотрудника из списка comboBoxJobRole и перехода к другому элементу управления формы необходимо на форме опять вывести элемент textBoxJobRole. Данные действия выполним по события Leave (покинуть) для элемента comboBoxJobRole. Обработчик события Leave имеет следующий вид:

private void comboBoxJobRole_Leave(object sender, EventArgs e){ textBoxJobRole.Visible = true; comboBoxJobRole.Visible = false;}

Шаг.11. Откомпилируйте программу и протестируйте правильность отображения информации в элементах управления textBoxJobRole и comboBoxJobRole.

Шаг.12. Аналогичные изменения сделайте для отображения информации по статусу и уровню доступа сотрудника. Для этого добавьте на форму FormEmployee элементы управления textBoxStatus и textBoxAccess.

Шаг.13. При изменении отображения информации о времени приема сотрудника на работу необходимо добавить элемент управления textBoxBirthday и выполнить действия, аналогичные проведенным ранее для отображения информации по должности сотрудника за одним исключением. Элемент управления dateTimePickerBirthday содержит информацию о дате и времени, а в элементе textBoxBirthday необходимо отображать только дату в текстовом формате. Формирование текстовой даты для элемента управления textBoxBirthday можно осуществить используя свойства Day, Month и Year объекта класса DateTime. С учетом вышеизложенного, листинг обработчика события "изменение значения величины Дата-Время" - ValueChanged будет иметь следующий вид:

private void dateTimePickerBirthday_ValueChanged(object sender, EventArgs e){ DateTime dt = dateTimePickerBirthday.Value; textBoxBirthday.Text = " " + dt.Day + "." + dt.Month + "." + dt.Year;}

Шаг.14. Откомпилируйте программу и протестируйте работу приложения. В режиме просмотра экранная форма должна иметь вид, аналогичный, приведенному на рисунке 12.4.

 

Рис. 12.4. Экранная форма в режиме просмотра

 

При редактировании даты приема сотрудника на работу экранная форма должна иметь вид, аналогичный, приведенному на рисунке 12.5.

Рис. 12.5. Экранная форма в режиме редактирования

 


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



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