让WindowsForm缩小到系统匣

Posted petewell

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了让WindowsForm缩小到系统匣相关的知识,希望对你有一定的参考价值。

让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的ContextMenuStrip设定成刚刚拉出来的ContextMenuStrip。

技术图片

技术图片

执行结果~

技术图片

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

Icon

技术图片

在之前隐藏主窗口的地方再加一行CODE~


if (isMin)
            
                this.Hide();//隐藏主窗口
                this.notifyIcon1.ShowBalloonTip(2000);//气球提示2秒钟
            

执行结果~

技术图片

嗯…杯具完了~~

原文:大专栏  让WindowsForm缩小到系统匣


以上是关于让WindowsForm缩小到系统匣的主要内容,如果未能解决你的问题,请参考以下文章

发动机罗·罗在遄达1000上开展复材风扇叶片和机匣集成测试

WPF窗口与windowsForm窗体之间的问题,怎么调用close()

C#在windowsform的datagridview表格里面添加一列删除按钮

技嘉AORUS RTX 3080 GAMING BOX显卡坞体验:笔记本的光追游戏性能加倍匣

说明会让系统变更成本居高不

winform打开图片为啥会旋转90