Опубликован: 09.09.2008 | Доступ: свободный | Студентов: 2107 / 346 | Оценка: 4.30 / 4.12 | Длительность: 08:30:00
ISBN: 978-5-94774-601-3
Самостоятельная работа 6:

Создание строки состояния

Цель работы: Изучить основные способы построения строки состояния и получить практические навыки в разработке

Создание строки состояния

На многих формах в реальных приложениях имеется элемент интерфейса, называемый строкой состояния ( StatusStrip ). Обычно в строке состояния выводится некоторая текстовая или графическая информация, относящаяся к работе приложения. Строка состояния может быть разделена на несколько "панелей" ( panel ) - отдельных частей окна. В каждой из этих панелей информация выводится отдельно.

Создадим строку состояния, в которой будут выводиться текстовые сообщения, относящиеся к пунктам меню.

В окне Toolbox выделим пункт StatusStrip и перетащим его на форму (рисунок 6.1).

Добавляем на форму строку состояния

увеличить изображение
Рис. 6.1. Добавляем на форму строку состояния

Объекту класса StatusStrip присвоим имя statusStripEmployee. Откроем выпадающий список объекта класса statusBarEmployee и выберем объект StatusLable (рисунок 6.2). Присвоим ему имя toolStripStatusLabelEmployee.

Добавляем метку в строку состояния

Рис. 6.2. Добавляем метку в строку состояния

При компиляции, запуске приложения и выборе пункта меню "Сотрудник" экранная форма будет иметь вид, представленный на рисунке 6.3.

Окно приложения со строкой состояния

Рис. 6.3. Окно приложения со строкой состояния

Для управления текстом строки состояния необходимо разработать обработчик события для соответствующих объектов.

Для формы FormEmployee в строке состояний необходимо вывести информацию при наведении курсора мыши на пунктах меню "Действие". Первоначально в дизайнере формы необходимо выделить пункт меню "Действие", перейти на вкладку Properties и открыть окно событий, нажав кнопкуНа данной вкладке необходимо выделить событие MouseEnter и в поле ввода сделать двойной щелчок. (рисунок 6.4).

Окно событий

Рис. 6.4. Окно событий

Система сгенерирует код обработчика, приведенного ниже.

private void actionToolStripMenuItem_MouseEnter(object sender, EventArgs e)
{   }

Добавим в обработчик следующий код:

private void actionToolStripMenuItem_MouseEnter(object sender, EventArgs e)
{ 
   toolStripStatusLabelEmployee.Text = 
        "Выбор действий по сотрудникам";
}

Если откомпилировать программу, запустить её, выбрать пункт меню "Сотрудник" и навести указатель мыши на пункт "Действие", то сгенерируется событие "MouseEnter" и в строке состояния выведется текстовое сообщение "Выбор действий по сотрудникам" (рисунок 6.5).

Вывод сообщения в строке состояния

Рис. 6.5. Вывод сообщения в строке состояния

Если теперь переместить указатель мыши с пункта меню "Действие", то текст в строке состояния не изменится. Такой режим работы программы является неправильным, так как если указатель мыши перемещается с пункта меню "Действие", то строка состояния должна становиться пустой. Для обеспечения правильной работы программы воспользуемся ещё одним событием "MouseLeave", которое генерируется, когда мышь перемещается (покидает) с пункта меню "Действие". Обработчик данного события имеет следующий вид:

private void actionToolStripMenuItem_MouseLeave(object sender, EventArgs e)
{
    toolStripStatusLabelEmployee.Text = "";
}

Вышеприведенные обработчики будут вызываться только тогда, когда пользователь наведет указатель мыши на пункт меню "Действие". Для того чтобы обработчики реагировали на все строки пунктов главного меню "Действие" и "Отчет" формы FormEmployee необходимо сформировать соответствующие события MouseEnter и MouseLeave для всех подпунктов меню и создать для них обработчики.

Результаты компиляции и выполнения приложения приведены на рисунке 6.6.

Экранная форма со строкой состояния

Рис. 6.6. Экранная форма со строкой состояния

Задание на лабораторную работу

  1. Изучить теоретический материал.
  2. Создать строку состояний для главной и дочерней форм.
  3. Написать обработчики для формирования строки состояний, отображающих информацию о пунктах меню.
  4. Протестировать работу приложения.
Анна Иваненко
Анна Иваненко

В самостоятельной работе 8 написано: "В пункте "Server name" задаем имя сервера, которое необходимо узнать у преподавателя". Где узнать это имя?

Вячеслав Шестивский
Вячеслав Шестивский

Вроде всё выставил верно, но при клике на "Сотрудники", меню из FormEmplyee не вставляется в меню главного окна а висит в дочернем окне снизу.  Как поправить?