Выполнение фоновых приложений. Элемент управления NotifyIcon

  • docx
  • 18.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Л2-002230.docx

Выполнение фоновых приложений. Элемент управления

NotifyIcon

Элемент управления NotifyIcon отображает значок в области уведом- лений (SystemTray) панели задач, соответствующий приложению, вы- полняемому в фоновом режиме.

рис.3

Создайте проект SystemTray. Перетащите на форму из окна ToolBox элементы управления ContextMenu и NotifyIcon. Добавьте в контекстное меню пункты "Показать" (имя пункта menuShow) и "Скрыть" (имя пункта – menuHide).

 

Установите следующие свойства элемента notifyIcon1:

 

свойство

Значение

СontextMenu

contextMenu1

Icon

  Icon\ eventlogWarn.ico

Text

Задача SystemTray

 

В результате будет сгенерирован следующий код:

 

private System.Windows.Forms.NotifyIcon notifyIcon1;

 

notifyIcon1.ContextMenu = contextMenu1; notifyIcon1.Icon =

((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon"))); notifyIcon1.Text = "Задача SystemTray ";

notifyIcon1.Visible = true;

notifyIcon1.DoubleClick += new EventHandler(menuShow_Click);

 

Изображение, используемое в качестве иконки (свойство Icon) эле- мента notifyIcon1, будет выводиться в область уведомлений.

Значение свойства Text представляет собой текст всплывающей под- сказки, появляющейся при наведении курсора на иконку приложения.

рис.4

 

В конструкторе формы свойству ShowInTaskbar присваиваем значе- ние false для удаления с панели задач иконки нашего приложения:

 

public class Form1 : Form

{

InitializeComponent();

 

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

this.ShowInTaskbar = false;

}


Добавляем обработчик пункта меню menuShow:

 

private void menuShow_Click (object sender, System.EventArgs e)

{

// Отобраем приложение на панели задач при запуске

this.ShowInTaskbar = true;

 

//Показываем форму

this.Show();

 

//Отключаем доступность пункта меню menuShow menuShow.Enabled = false;

 

//Включаем доступность пункта меню menuHide menuHide.Enabled = true;

}

 

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

 

private void menuHide_Click (object sender, System.EventArgs e)

{

this.ShowInTaskbar = false; this.Hide();

 

menuShow.Enabled = true; menuHide.Enabled = false;

}

 

В режиме дизайна в окне Properties элемента управления notifyIcon1 переключаемся на события и в поле DoubleClick выбираем из списка об- работчик menuShow_Click.

 

Примечание.

Можно было создать свой обработчик для события DoubleClick, а из него вызвать menuShow_Click():

 

private void notifyIcon1_DoubleClick(object sender, EventArgs e)

{

menuShow_Click (this, new EventArgs());

}

 

В результате обработчиком события notifyIcon1_DoubleClick будет об- работчик menuShow_Click.

 

Запускаем приложение.

 

В области уведомлений появляется иконка, связанная с notifyIcon1.

 

Пункты контекстного меню отображают и удаляют иконку приложе- ния с панели задач.


Так как контекстное меню было установлено для ЭУ notifyIcon1, то двойной щелчок мышки на иконке в области уведомлений выводит пунк- ты "Показать" и "Скрыть":


рис.5

 

Эти пункты отображают и удаляют иконку приложения с панели за- дач. При этом окно приложения по пункту "Показать" отображается на экране только в том случае, если перед этим оно не было свернуто на панель задач.


 

Скачано с www.znanio.ru