当前位置:   article > 正文

C# winform实现窗体最小化时显示到(桌面右下角)系统托盘_c# 最小化到托盘

c# 最小化到托盘

用C#开发winform桌面程序时,程序启动后,默认是显示在桌面而且在任务栏中有对应的图标。有的时候,需要在程序最小行后,将程序图标仅仅显示在系统托盘,不在任务栏中显示。

这时,我们需要用到winform控件NotifyIcon,此控件用于运行时期间在 windows 任务栏右侧的通知区域显示图标。实现窗体最小化时显示到(桌面右下角)系统托盘的步骤如下:

1. 新建窗体,将NotifyIcon控件拖放到窗体上

2. 设置NotifyIcon控件的Icon属性,Icon的值是显示在系统托盘的图标(和窗体的图标可以不一样)

3. 设置窗体属性 showintaskbar = false

经过以上设置,启动程序后,在任务栏中不再显示窗体的图标,右下角系统托盘中也会显示NotifyIcon控件的图标。但是此时最小化窗体后,窗体没有隐藏,注意查看会发现窗体(一般情况下)最小化在桌面的右下角。为了彻底隐藏窗体,我们需要在窗体最小化时隐藏窗体。

4. 最小化时隐藏窗体,示例代码如下:   

    /// <summary>
    /// 最小化窗体时,隐藏窗体
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void Form1_SizeChanged(object sender, EventArgs e)
    {
        // 判断只有最小化时,隐藏窗体
        if (this.WindowState == FormWindowState.Minimized)
        {
            this.Hide();
        }
    }
经过此步,最小化窗体后,窗体隐藏,只在右下角的系统托盘中显示NotifyIcon的图标。通常情况下,我们希望在点击NotifyIcon图标时,再显示窗体。但此时我们点击NotifyIcon图标时,发现没有任何反应,和我们希望看到的不一样。这时,我们可以使用如下设置。

5. 添加点击NotifyIcon图标事件(显示窗体),实例代码如下:

    private void notifyIcon1_Click(object sender, EventArgs e)
    {
        // 正常显示窗体
        this.Visible = true;
        this.WindowState = FormWindowState.Normal;
    }
经过以上设置,程序启动后,可以最小化隐藏(任务栏中也没有程序图标)并在系统托盘中显示程序指定的图标;在点击系统托盘图标后,也可以重新显示程序窗体。

当然,我们也可以根据自身需要,给NotifyIcon控件添加右键菜单等,用于显示或关闭程序。或者直接设置窗体的WindowState = Minimized,在启动程序后直接隐藏窗体。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/58477
推荐阅读
相关标签
  

闽ICP备14008679号