很多程序是只需要后台运行的,甚至不需要自己的应用界面。NotifyIcon提供了程序在任务栏的显示功能
程序下载链接如下:
http://download.csdn.net/detail/u010312811/9483473
1.创建一个项目,向窗体中添加NotifyIcon控件和ContextMenuStrip控件;
2.为ContextMenuStrip控件添加子项;
3.选择NotifyIcon控件,在其属性窗口中将ContextMenuStrip属性设置为添加到窗体上的ContextMenuStrip控件,并为Icon属性设置图片。
注:必须为NotifyIcon控件的Icon属性设置图标,否则是看不到的
代码:
1 private void 显示ToolStripMenuItem_Click(object sender, EventArgs e)
2 {
3 this.Visible = true;
4 }
5
6 private void 设置ToolStripMenuItem_Click(object sender, EventArgs e)
7 {
8 this.Visible = false;
9 }
10
11 private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
12 {
13 Application.Exit();
14 }
效果图:
2.图标的闪烁效果
在图标闪烁中提到,给NotifyIcon赋予一个ICON可以控制使其在任务栏显示,闪烁的效果是加上一个空白的图标,正常图标与空白图标的切换进而实现闪烁的效果。
注:不能使用清除icon的方法,否则图标是在该位置清除,会引起其他图标的移动,空白图标起到占位的作用
代码如下:
说明:property是vs的一个资源管理功能,可以存储系统图标及一些常量
1 private Icon blank = Properties.Resources.blank;
2 private Icon normal = Properties.Resources.normal;
3 private bool _status = true;
4 private bool _isBlink = false;
右键菜单控制图标是不是显示
1 private void toolStripMenuItem1_Click(object sender, EventArgs e)
2 {
3 if (_isBlink == false)
4 {
5 _isBlink = true;
6 timer1.Enabled = true;
7 timer1.Start();
8 }
9 else
10 {
11 _isBlink = false;
12 timer1.Stop();
13
14 notifyIcon1.ShowBalloonTip(5000, "提示", "关闭闪烁效果!", ToolTipIcon.Info);
15 }
16 }
定时器中修改图标的状态,定时反转图标
1 private void timer1_Tick(object sender, EventArgs e)
2 {
3 if (_status)
4 notifyIcon1.Icon = normal;
5 else
6 notifyIcon1.Icon = blank;
7
8 _status = !_status;
9 }
气泡提示:
notifyIcon1.ShowBalloonTip(5000, "提示", "关闭闪烁效果!", ToolTipIcon.Info);