阅读: 150 评论: 1 做者: blackcore 发表于 2009-11-18 10:06 原文连接html
- 首先应该把MDI窗体ShowInTaskbar设置为true,在vs2008中默认就是true;
- 而后分别添加NotifyIcon及其ContextMenuStrip控件;
- 再把NotifyIcon的ContextMenuStrip属性值指向ContextMenuStrip,而且把NotifyIcon的Icon指定一张*.Icon格式的图片文件以便显示在任务栏中;
- 为NotifyIcon添加名称为notifyIconSystem_MouseDoubleClick的MouseDoubleClick事件;
- 为MDI窗体添加名为MainForm_SizeChanged的SizeChanged事件;
以上基本上就能够完成咱们相应的需求了,而后就是实现了。在这里我要求Application在应用时任务栏不显示相应的图标,只有当在最小化时才显示其图标,而且在右击任务栏上的图标提供简单的功能(隐藏,显示,关闭,关于),双击图标时还原Application窗体。windows
具体代码以下:ide
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_最小化的右击图标菜单
本人初学WinForm开发,以上内容是我的整理以便有需而用,其如有误,烦请帮忙指点更正,衷心感谢!BlackCore敬上!网站
发表评论this
新闻频道:三款淘宝手机问世 淘宝无线电子商务开启spa
推荐连接:Windows 7专题发布
code
网站导航:博客园首页 我的主页 新闻 社区 博问 闪存 知识库orm