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

    用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,在启动程序后直接隐藏窗体。

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#中,要实现将应用程序最小化右下角,可以使用NotifyIcon控件和ContextMenuStrip控件的组合。首先,需要添加NotifyIcon控件,并设置其图标。然后,在点击事件中判断窗体的状态,如果是最小化状态,则将窗体状态设置为正常,并激活窗体显示窗体、以及在任务栏中显示窗体。这样就可以实现将应用程序从右下角恢复到正常状态。 另外,还可以通过设置窗体的SizeChanged事件来实现最小化右下角。在事件中判断窗体的状态,如果是最小化状态,则隐藏窗体,并将NotifyIcon控件设置为可见,这样应用程序就会最小化右下角的托盘中。 此外,还可以添加ContextMenuStrip控件来实现右击事件。在事件中可以绑定一些功能,比如退出程序等。双击编辑click事件可以实现关闭程序的功能。只需要在事件中添加对话框,询问用户是否确认关闭程序,如果确认则关闭所有线程并关闭应用程序。 总结来说,要将C#应用程序最小化右下角,可以使用NotifyIcon控件和ContextMenuStrip控件的组合,通过设置点击事件和SizeChanged事件来实现最小化和恢复的功能,同可以在ContextMenuStrip控件中绑定其他功能,如退出程序等。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [C#随笔记,winForm应用程序右下角最小化](https://blog.csdn.net/li937666/article/details/114940556)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [C#窗体最小化右下角托盘的方法](https://blog.csdn.net/mutou965175859/article/details/80318879)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值