当前位置 主页 > 网站技术 > 代码类 >

    如何让WindowsForm缩小到系统匣过程详解

    栏目:代码类 时间:2019-09-16 16:04

    如何让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秒钟      }

    执行结果~

    嗯…杯具完了~~

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持IIS7站长之家。