Элемент NotifyIcon позволяет задать значок, который будет отображаться при запуске приложения в панели задач.
Рассмотрим основные его свойства:
BallonTipIcon: иконка, которая будет использоваться на всплывающей подсказке. Это свойство может иметь следующие значения:
None
, Info
, Warning
, Error
.
BalloonTipText: текст, отображаемый во всплывающей подсказке
BalloonTipTitle: загаловок всплывающей подсказки
ContextMenuStrip: устанавливает контекстное меню для объекта NotifyIcon
Icon: задает значок, который будет отображаться в системном трее
Text: устанавливает текст всплывающей подсказки, которая появляется при нахождении указателя мыши над значком
Visible: устанавливает видимость значка в системном трее
Чтобы добавить на форму NotifyIcon, перенесем данный элемент на форму с панели инструментов. После этого добавленный компонент NotifyIcon отобразится внизу дизайнера формы.
Затем зададим у NotifyIcon для свойства Icon какую-нибудь иконку в формате .ico. И также установим для свойства Visible
значение true
.
Далее также зададим у NotifyIcon для свойства Text
какой-нибудь текст, например, "Показать форму". Этот текст отобразится при прохождении указателя мыши над
значком NotifyIcon в системном трее.
Чтобы можно было открыть форму по клику на значок в трее, надо обработать событие Click у NotifyIcon. Поэтому в коде формы определим обработчик для этого события:
public partial class Form1 : Form { public Form1() { InitializeComponent(); this.ShowInTaskbar = false; notifyIcon1.Click += notifyIcon1_Click; } void notifyIcon1_Click(object sender, EventArgs e) { this.WindowState = FormWindowState.Normal; } }
В обработчике просто переводим форму из минимизированного состояния в обычное.
И кроме того, чтобы форма не отображалась на панели задач, у нее задаем свойство ShowInTaskbar = false.
В итоге после запуска приложения в трее будет отображаться значок NotifyIcon, нажав на который при свернутой форме, мы ее можем заново открыть.
Теперь используем всплывающую подсказку. Для этого изменим конструктор формы:
public partial class Form1 : Form { public Form1() { InitializeComponent(); this.ShowInTaskbar = false; notifyIcon1.Click += notifyIcon1_Click; // задаем иконку всплывающей подсказки notifyIcon1.BalloonTipIcon = ToolTipIcon.Info; // задаем текст подсказки notifyIcon1.BalloonTipText = "Нажмите, чтобы отобразить окно"; // устанавливаем зголовк notifyIcon1.BalloonTipTitle = "Подсказка"; // отображаем подсказку 12 секунд notifyIcon1.ShowBalloonTip(12); } void notifyIcon1_Click(object sender, EventArgs e) { this.WindowState = FormWindowState.Normal; } }
И при запуске отобразится всплывающая подсказка: