【发布时间】: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