Создание Windows-приложений на основе Visual C#

         

Запуск приложения в области уведомлений. Элемент управления NotifyIcon


Некоторые программы, такие как словари и антивирусы, при запуске остаются в области уведомлений панели задач, откуда их можно развернуть, дважды щелкнув на иконке приложения (рис. 3.17):


Рис. 3.17.  Приложения в области уведомления

Создайте новое приложение и назовите его SystemTray. Перетаскиваем на форму из окна ToolBox элементы управления ContextMenu и NotifyIcon. Элемент управления NotifyIcon и представляет собой отображение запущенного приложения в области задач. Добавляем пункты контекстного меню и устанавливаем следующие свойства элемента NotifyIcon:

contextMenu1,
свойство NameText
mnuShowПоказать
mnuHideСкрыть
notifyIcon1, свойствоЗначение
СontextMenucontextMenu1
Icon
Code\Glava3\SystemTray\Icon\ eventlogWarn.ico
TextОбласть уведомлений

Изображение, используемое в качестве иконки (свойство Icon) элемента NotifyIcon, будет выводиться в область уведомлений. Значение свойства Text представляет собой текст всплывающей подсказки, появляющейся при наведении курсора на иконку приложения. Добавляем обработчик пункта меню mnuShow:

private void mnuShow_Click(object sender, System.EventArgs e) { //Включаем отображения приложения на панели задач при запуске this.ShowInTaskbar = true; //Показываем форму this.Show(); //Отключаем доступность пункта меню mnuShow mnuShow.Enabled = false; //Включаем доступность пункта меню mnuHide mnuHide.Enabled = true; //Переменной Hidden устанавливаем значение false

}

Обработчик пункта меню mnuHide изменяет эти значения на обратные:

private void mnuHide_Click(object sender, System.EventArgs e) { this.ShowInTaskbar = false; this.Hide(); mnuShow.Enabled = true; mnuHide.Enabled = false;

}

В конструкторе формы скрываем видимость приложения на панели задач при запуске:

public Form1() { InitializeComponent(); this.ShowInTaskbar = false; }

Переключаемся в режим дизайна, в окне Properties элемента управления NotifyIcon переключаемся на события и дважды щелкаем в поле события DoubleClick:

private void notifyIcon1_DoubleClick(object sender, System.EventArgs e) { mnuShow_Click(this, new EventArgs()); }



Содержание раздела