c#中 让WinForm应用程序最小化图标显示在任务栏并提供右击菜单
让WinForm应用程序最小化图标显示在任务栏并提供右击菜单IT世界 2010-04-09 09:30:50 阅读241 评论0 字号:大中小 订阅 .
让WinForm应用程序最小化图标显示在任务栏并提供右击菜单
1.首先应该把MDI窗体ShowInTaskbar设置为true,在vs2008中默认就是true;
2.然后分别添加NotifyIcon及其ContextMenuStrip控件;
3.再把NotifyIcon的ContextMenuStrip属性值指向ContextMenuStrip,并且把NotifyIcon的Icon指定一张*.Icon
格式
pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载
的图片文件以便显示在任务栏中;
4.为NotifyIcon添加名称为notifyIconSystem_MouseDoubleClick的MouseDoubleClick事
件;
5.为MDI窗体添加名为MainForm_SizeChanged的SizeChanged事件;
以上基本上就可以完成我们相应的需求了,然后就是实现了。在这里我要求Application在
应用时任务栏不显示相应的图标,只有当在最小化时才显示其图标,并且在右击任务栏上的
图标提供简单的功能(隐藏,显示,关闭,关于),双击图标时还原Application窗体。
具体代码如下:
Code
//窗体加载
private void MainForm_Load(object sender, EventArgs e)
{
//.
this.notifyIconSystem.Visible = false;
}
//双击任务栏图标时,还原窗口
private void notifyIconSystem_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
this.WindowState = FormWindowState.Normal;
this.Activate();
this.notifyIconSystem.Visible = false;
}
//添加窗体最小化事件
private void MainForm_SizeChanged(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)//最小化
{
this.ShowInTaskbar = false;
this.notifyIconSystem.Visible = true;
}
}
#region BEGIN_最小化的右击图标菜单
private void menuItemIcon_Hide_Click(object sender, EventArgs e)
{
//this.WindowState = FormWindowState.Minimized;
this.Hide();
this.ShowInTaskbar = false;
this.notifyIconSystem.Visible = true;
}
private void menuItemIcon_Show_Click(object sender, EventArgs e)
{
this.Show();
this.WindowState = FormWindowState.Normal;
this.Activate();
}
private void menuItemIcon_About_Click(object sender, EventArgs e)
{
//
}
private void menuItemIcon_Exit_Click(object sender, EventArgs e)
{
ApplicationExit(null);
}
#endregion END_最小化的右击图标菜单