最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】C#中如何实现将窗体程序在系统托盘上显示

C# crifan 2948浏览 0评论

【问题】

C#程序,希望将窗体程序在系统托盘上显示。

【解决过程】

1.参考:C#系统托盘,但是没找到notifyIconMinimize,所以还是没解决问题。

2. 参考:C#实现窗口最小化到系统托盘

(1)先在窗体属性中,关闭了ShowInTaskbar:

close showintaskbar

(2)从工具箱中,拖动一个NotifyIcon到窗体中:

drag a NotifyIcon

(3)然后把对应控件改为nfiSystem,然后照葫芦画瓢,添加了对应的代码:

private void frmDownloadSonstasteMusic_SizeChanged(object sender, EventArgs e)
{
    if (this.WindowState == FormWindowState.Minimized)
    {
        Hide();  // 隐藏窗体
        nfiSystem.Visible = true;  // 系统托盘图标可见
    } 

}

private void nfiSystem_MouseDoubleClick(object sender, MouseEventArgs e)
{
    this.Visible = true;
    this.WindowState = FormWindowState.Normal;
    this.nfiSystem.Visible = false;
}

运行后,点击最小化,任务栏上,的确是没有了本程序,但是系统托盘上面,却看不见自己的程序。

(4)后来才知道,原来是自己没有去设置该NotifyIcon控件对应的图标:

点击该控件,在属性中,找到Icon,然后选择一个已有的icon即可:

set icon

其中,我的icon,是通过已有的jpg图片,在ICO在线生成的32×32的icon的。

(5)重新编译运行,就可以了。

对应的,点击最小化,任务栏上没有程序,系统托盘上有自己的程序,也有对应的图标,双击该图片,就可以恢复原先窗体了。

其中,我这里由于事先的是nfiSystem的MouseDoubleClick函数,所以是双击,则执行对应的恢复窗体的代码。

转载请注明:在路上 » 【已解决】C#中如何实现将窗体程序在系统托盘上显示

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
82 queries in 0.189 seconds, using 22.08MB memory