转载:http://www.cnblogs.com/dooroo/archive/2012/09/09/2677315.html
winform托盘的使用主要用到了两个控件notifyIcon和contextMenuStrip
(一)notifyIcon的使用
1)先在工具箱中拖到主窗体中,直接在属性icon中选择一个ICO图标作为托盘图标,并把主窗口的属性ShowInTaskbar是否出现在任务栏中设置为假
2)添加以下事件和语句
private void Form1_SizeChanged(object sender, EventArgs e)
{//窗口尺寸改变事件:即点最小化时(最好窗口是固定大小)
if (this.WindowState == FormWindowState.Minimized)
{
this.Hide();//隐藏主窗口
this.notifyIcon1.Visible = true;//托盘为真
}
}
//双击托盘,窗口恢复正常
private void notifyIcon1_DoubleClick(object sender, EventArgs e)
{
this.Visible = true;
this.WindowState = FormWindowState.Normal;
}
3)这里涉及到如果窗口有关闭按钮(最好是自己做关闭按钮),把关闭按钮改为最小化
protected override void WndProc(ref Message m)
{//重装API中的关闭
const int WM_SYSCOMMAND = 0x0112;
const int SC_CLOSE = 0xF060;
if (m.Msg == WM_SYSCOMMAND && (int)m.WParam == SC_CLOSE)
{//捕捉关闭窗体消息
this.WindowState = FormWindowState.Minimized;
return;
}
base.WndProc(ref m);
}
如果是自己做的关闭按钮,直接用第2)步的方法即可.
(二)为了让托盘图标有右键菜单功能,需要添加contextMenuStrip
1)从工具箱中拖contextMenuStrip控件到主窗体
2)为contextMenuStrip设置菜单项
3)为notifyIcon属性中关联contextMenuStrip
4)假设双击托盘或托盘菜单中"显示主窗口":
//双击托盘,窗口恢复正常
private void notifyIcon1_DoubleClick(object sender, EventArgs e)
{
this.Visible = true;
this.WindowState = FormWindowState.Normal;
}
//菜单:显示主窗口
private void 主窗口_Click(object sender, EventArgs e)
{
this.Visible = true;
this.WindowState = FormWindowState.Normal;
}
//菜单:退出功能
private void 退出_Click(object sender, EventArgs e)
{
this.Close();
}
另:如果想加一个关闭窗口时提示:确定退出?"是"则退出,"否"则最小化,并提供一个checkbox记住以后都按相同的操作,还会有一点麻烦,下次再研究.
if (MessageBox.Show("确定退出?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
{
Application.Exit();
}
相关推荐
VS2017 .Net Framework 2.5 开发, yong 在WindowsForm下使用NotifyIcon、ContextMenuStrip,Timer 实现任务栏托盘菜单隐藏,显示及闪烁效果。
C#中禁止使用Windows任务栏完整代码,测试通过,欢迎大家下载学习
这个不但可以在任务栏显示图标,而且右键点击图标还可以显示菜单,虽然功能不复杂,但对初学者很有帮助。
带菜单的任务栏托盘图标C#版源代码 ,有利于改善界面的美观效果。
c# 系统托盘,任务栏通知区。(右键菜单,关闭窗体是隐藏) 通过右键菜单关闭窗体
提供了用于实现任务栏托盘图标弹出式菜单的完整代码参照
实现_仿制任务栏托盘菜单
使用Winfrom (C#)做的任务栏托盘菜单
最小化至任务栏,右键显示或者退出程序.(加笔记)
闪动只要每隔一段时间换另外一个ico就可以实现了 但是闪动呢,这个例子就实现了 C# 在Windows托盘处旋转图标 C#实例 状态栏 ico图标特效 旋转 Notify
C# 带任务栏图标的WindowsService
任务栏托盘菜单(NotifyIcon) 属性:Icon--系统栏中显示的图标 ContextMenuStrip--和contextMenuStrip连用 其他的可以看看,还有三个提示信息的设置...
C# 系统应用之窗体最小化至任务栏,同时在系统托盘区的图标点击左键能显示窗体,右键能关联控件显示3个常用功能最小化至任务栏并在系统托盘区留下图标,
C#系统托盘程序,在任务栏右下角显示程序图标,并在托盘处显示菜单进行相应控制
WPF实现的窗口最小化到任务栏 系统托盘 NotifyIcon 任务栏
C#显示动态托盘图标示例,若积分不够,请到http://www.codefans.net/soft/22803.shtml...学习了一段C#编程,今天抽空写一个新手可参考的小程序,动态显示窗口任务栏右下角的托盘图标,可向指定IP发送消息,窗口可闪动。
本文通过向大家介绍一个.Net平台上用C#写的可以停放在任务栏上的图标程序(类似于Flashget、OICQ那种系统托盘图标)来和大家一起体验一下用C#编程的乐趣。
隐藏任意程序在任务栏通知处的图标 1、直接把右下角托盘的此小图标隐藏掉。 2、用vb的Form隐藏打开这个软件,右下角就不显示出来了。
类似与口口发送离线消息时候在在任务栏起到的托盘图标闪烁功能