如何让WindowsForm缩小到系统匣过程详解
如何让windowsForm能像MSN一样缩小后会跑到右下方的系统匣内,
只要利用NotifyIcon就可以做到相同的功能,MSDN NotifyIcon组件说明
首先先开启一个windowsForm项目,在工具栏将NotifyIcon拉到windowsForm上。

接着先为NotifyIcon指定Icon和Text,就是在系统匣会出现的小图和鼠标移过去时出现的文字。

执行结果

如果要在窗口缩小时,只显示在系统匣显示,
反之则变成只显示在工作列,就必须要在Form的SizeChanged事件做控制:
将NotifyIcon 的Visible默认为false
private void Form1_SizeChanged(object sender, EventArgs e)
{
bool isMin = this.WindowState == FormWindowState.Minimized;//窗口是否为最小化
this.notifyIcon1.Visible = isMin;//是否显示在系统匣
this.ShowInTaskbar = !isMin;//是否显示在工作列
if (isMin)
this.Hide();//隐藏主窗口
}
这样如果把窗口缩小后,会没办法再叫回来,但可以利用NotifyIcon的MouseDoubleClick事件,
让鼠标左键点选系统匣图示两下就恢复正常窗口。
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
this.Show();
this.WindowState = FormWindowState.Normal;
}
}
接着还可以为NotifyIcon加ContextMenuStrip,从工具栏中拉一个ContextMenuStrip到设计窗口,并设计一些选项进去,

执行结果~

NotifyIcon还可以加上气球提示效果,假设在窗口缩小的时候可跳出一个气球提示告知使用者~
Icon

在之前隐藏主窗口的地方再加一行CODE~
if (isMin)
{
this.Hide();//隐藏主窗口
this.notifyIcon1.ShowBalloonTip(2000);//气球提示2秒钟
}
执行结果~

嗯…杯具完了~~
上一篇:怎样修复Windows 10 Enterprise 在9月更新后图片全部由绘图板打开的情况
栏 目:Windows
下一篇:IIS进程回收导致定时器失效的解决方法(CMD命令)
本文地址:http://www.codeinn.net/misctech/189148.html


阅读排行
- 1win2003 service pack2 IIS 无法复制CONVLOG.EXE CONVLOG.EX_问题处理
- 2Windows Server 2008 R2 DNS 服务器迁移方法
- 3win2008 IP安全策略关闭端口、禁止ping、修改远程连接3389端口、开放指定端口
- 4man -f/-k [keyword]在fedora 29 中报错nothing appropriate
- 5IP策略实现服务器禁止Ping
- 6win2003开机自动登录后锁定
- 7本地策略提示不能确定应用到此机器的组策略安全性设置的解决方法
- 8限制Win9X/NT系统功能二十六招
- 9windows10彻底关闭自动更新【绝对可行】
- 10win2003 3389手工修改方法




