WinForm中实现最小化到系统托盘
2012-09-25 23:47
253 查看
有个叫NotifyIcon的控件
1、建个WinForm项目,其它操作略过。
2、拉个NotifyIcon控件,将属性Visable设置成False,在Text属性上随便填些文件。
3、实现Form的SizeChanged事件,代码如下:
if(this.WindowState == FormWindowState.Minimized) //判断是否最小化
{
this.ShowInTaskbar = false; //不显示在系统任务栏
notifyIcon.Visible = true; //托盘图标可见
}
4、实现NotifyIcon控件的DoubleClick事件,代码如下:
if(this.WindowState == FormWindowState.Minimized)
{
this.ShowInTaskbar = true; //显示在系统任务栏
this.WindowState = FormWindowState.Normal; //还原窗体
notifyIcon.Visible = false; //托盘图标隐藏
}
例题:
private ContextMenu notifyiconMnu;
#region 最小化到任务栏
/// <summary>
/// 最小化到任务栏
/// </summary>
private void Initializenotifyicon()
{
//定义一个MenuItem数组,并把此数组同时赋值给ContextMenu对象
MenuItem[] mnuItms = new MenuItem[3];
mnuItms[0] = new MenuItem();
mnuItms[0].Text = "显示窗口";
mnuItms[0].Click += new System.EventHandler(this.notifyIcon1_showfrom);
mnuItms[1] = new MenuItem("-");
mnuItms[2] = new MenuItem();
mnuItms[2].Text = "退出系统";
mnuItms[2].Click += new System.EventHandler(this.ExitSelect);
mnuItms[2].DefaultItem = true;
notifyiconMnu = new ContextMenu(mnuItms);
notifyIcon1.ContextMenu = notifyiconMnu;
//为托盘程序加入设定好的ContextMenu对象
}
private void notifyIcon1_DoubleClick(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
this.Show();
this.ShowInTaskbar = true;
this.WindowState = FormWindowState.Normal;
notifyIcon1.Visible = false;
}
}
public void notifyIcon1_showfrom(object sender, System.EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
this.Show();
this.ShowInTaskbar = true;
this.WindowState = FormWindowState.Normal;
notifyIcon1.Visible = false;
}
}
public void ExitSelect(object sender, System.EventArgs e)
{
//隐藏托盘程序中的图标
notifyIcon1.Visible = false;
//关闭系统
this.Close();
this.Dispose(true);
}
#endregion
private void Form_main_SizeChanged(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized) //判断是否最小化
{
notifyIcon1.Visible = true;
this.Hide();
this.ShowInTaskbar = false;
Initializenotifyicon();
}
}
1、建个WinForm项目,其它操作略过。
2、拉个NotifyIcon控件,将属性Visable设置成False,在Text属性上随便填些文件。
3、实现Form的SizeChanged事件,代码如下:
if(this.WindowState == FormWindowState.Minimized) //判断是否最小化
{
this.ShowInTaskbar = false; //不显示在系统任务栏
notifyIcon.Visible = true; //托盘图标可见
}
4、实现NotifyIcon控件的DoubleClick事件,代码如下:
if(this.WindowState == FormWindowState.Minimized)
{
this.ShowInTaskbar = true; //显示在系统任务栏
this.WindowState = FormWindowState.Normal; //还原窗体
notifyIcon.Visible = false; //托盘图标隐藏
}
例题:
private ContextMenu notifyiconMnu;
#region 最小化到任务栏
/// <summary>
/// 最小化到任务栏
/// </summary>
private void Initializenotifyicon()
{
//定义一个MenuItem数组,并把此数组同时赋值给ContextMenu对象
MenuItem[] mnuItms = new MenuItem[3];
mnuItms[0] = new MenuItem();
mnuItms[0].Text = "显示窗口";
mnuItms[0].Click += new System.EventHandler(this.notifyIcon1_showfrom);
mnuItms[1] = new MenuItem("-");
mnuItms[2] = new MenuItem();
mnuItms[2].Text = "退出系统";
mnuItms[2].Click += new System.EventHandler(this.ExitSelect);
mnuItms[2].DefaultItem = true;
notifyiconMnu = new ContextMenu(mnuItms);
notifyIcon1.ContextMenu = notifyiconMnu;
//为托盘程序加入设定好的ContextMenu对象
}
private void notifyIcon1_DoubleClick(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
this.Show();
this.ShowInTaskbar = true;
this.WindowState = FormWindowState.Normal;
notifyIcon1.Visible = false;
}
}
public void notifyIcon1_showfrom(object sender, System.EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
this.Show();
this.ShowInTaskbar = true;
this.WindowState = FormWindowState.Normal;
notifyIcon1.Visible = false;
}
}
public void ExitSelect(object sender, System.EventArgs e)
{
//隐藏托盘程序中的图标
notifyIcon1.Visible = false;
//关闭系统
this.Close();
this.Dispose(true);
}
#endregion
private void Form_main_SizeChanged(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized) //判断是否最小化
{
notifyIcon1.Visible = true;
this.Hide();
this.ShowInTaskbar = false;
Initializenotifyicon();
}
}
相关文章推荐
- WinForm最小化到系统托盘后,再次激活需要验证的实现方法
- WinForm实现最小化到系统托盘方法实例详解
- C#实现WinForm窗口最小化到系统托盘
- WinForm实现最小化到系统托盘方法实例详解
- C#实现WinForm窗口最小化到系统托盘
- [导入]C#实现WinForm窗口最小化到系统托盘
- C#实现WinForm窗口最小化到系统托盘
- C# 实现WinForm窗口最小化到系统托盘代码
- C# 实现WinForm窗口最小化到系统托盘代码
- C#实现winform软件开机自动启动并最小化到系统托盘
- C#开发WinForm程序如何实现程序最小化到系统托盘
- C#实现WinForm窗口最小化到系统托盘
- WinForm中实现最小化到系统托盘
- C# 实现WinForm窗口最小化到系统托盘代码(转载)
- .net实例:WINFORM是实现窗体最小化到系统托盘中
- C#实现WinForm窗口最小化到系统托盘
- C#实现winform软件开机自动启动并最小化到系统托盘
- C#实现winform软件开机自动启动并最小化到系统托盘
- .net实例:WINFORM是实现窗体最小化到系统托盘中
- winform编程实现程序最小化到系统托盘代码 (转)