【问题标题】:C# How to avoid multiple tray icons when opening multiple windowsC#如何在打开多个窗口时避免多个托盘图标
【发布时间】:2018-07-07 10:38:32
【问题描述】:

我正在开发一个带有多个表单和一个托盘图标的 C# Windows 窗体应用程序。

当我的应用程序启动时,它会向系统托盘添加一个托盘图标,如果我使用 .ShowDialog 显示一个子表单,我将获得一个带有第二个托盘图标的应用程序的新实例。 这是我显示子表单的代码:

    btnEditor_Click(object sender, EventArgs e) 
    {   
    CSV_Editor editor = new CSV_Editor(listEntrys,conf); 
    editor.ShowDialog(); 
    }

两个窗体都是winforms,只有主窗体有一个托盘图标。

如何避免得到两个图标?

感谢您的帮助!

【问题讨论】:

  • “子窗体”和主窗体是同一类型吗?如果没有,它是否也有NotifyIcon?请包含您用于显示第二个表单的代码。
  • 我在问题中包含了我的代码和其他详细信息。
  • 这不是我问的。两种形式是否属于同一类型 (CSV_Editor)?另外,您如何使用/显示“托盘图标”?您使用的是NotifyIcon 吗?如果第二种形式是不同的类型,你确定它也没有吗?
  • 不,表格来自不同的类型。我使用NotifyIcon(只是将它从工具箱拖到我的表单中)。 CSV_Editor 表单没有 NotifyIcon
  • 在这种情况下,您没有向我们提供足够的信息来找出问题所在。我对你的建议:用两个表单启动一个新应用程序,在 Form1 上放置一个NotifyIcon 组件并有一个调用Form2Instance.ShowDialog() 的方法,它应该只显示一个托盘图标,一旦你确认了,开始检查哪些附加代码您在可能导致问题的原始应用程序中。如果您仍然不确定,您可以再次编辑问题,向我们提供Minimal, Complete, and Verifiable example

标签: c# .net winforms system-tray trayicon


【解决方案1】:

将第二个表单中的ShowInTaskbar 设置为false

【讨论】:

  • 问题依旧。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-08
相关资源
最近更新 更多