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,在启动程序后直接隐藏窗体。
  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值