1. 添加控件NotifyIcon
(1)属性Icon:托盘图标。该属性必须要设置,否则无法显示托盘图标。
(2)属性Text:鼠标放在托盘图标上显示的文字。
(3)属性Visible:可以一直设为True,即程序运行之后就一直显示托盘图标;也可以在程序最小化到托盘时才显示托盘图标,即程序没有最小化到托盘时设为False,最小化到托盘时设为True。
(4)窗口的FormClosing事件:单击窗口的“X”按键,实现程序最小化到托盘。
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
//取消关闭窗口
e.Cancel = true;
//最小化主窗口
this.WindowState = FormWindowState.Minimized;
//不在系统任务栏显示主窗口图标
this.ShowInTaskbar = false;
}
如果需要程序在最小化到托盘时,弹出提示气泡,只需要在FormClosing事件中添加:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
//取消关闭窗口
e.Cancel = true;
//最小化主窗口
this.WindowState = FormWindowState.Minimized;
//不在系统任务栏显示主窗口图标
this.ShowInTaskbar = false;
//提示气泡
notifyIcon1.ShowBalloonTip(2000, "最小化到托盘", "程序已经缩小到托盘,单击打开程序。", ToolTipIcon.Info);
}
(4)事件MouseClick或者Click:单击托盘图标,程序恢复。
private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
if (this.WindowState == FormWindowState.Minimized)
{
//还原窗体
this.WindowState = FormWindowState.Normal;
//系统任务栏显示图标
this.ShowInTaskbar = true;
}
//激活窗体并获取焦点
this.Activate();
}
}
2. 添加控件ContextMenuStrip
该控件不是必须的,根据自己的需要决定是否添加。ContextMenuStrip用于右键托盘图标,显示自定义功能列表。效果可以参考QQ的右键托盘图标,可以添加 打开主面板、退出、帮助以及功能之间的跳转等功能。
(1)NotifyIcon的属性ContextMenuStrip设置为该控件。
(2)自定义ContextMenuStrip的Items属性,向其中添加ToolStripMenuItem,每个ToolStripMenuItem还可以继续添加二级菜单。
(3)编写ToolStripMenuItem的Click事件。
如:添加退出功能,新增一个ToolStripMenuItem,设置属性Text的值为退出,编写Click属性。不能只是简单地写this.Close(),因为这会触发上面添加的FormClosing事件,这样会导致添加的退出实际上却是最小化到托盘。应该在this.Close()的前面添加this.Dispose(),即:
private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
this.Dispose();
this.Close();
}