首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >系统托盘图标

系统托盘图标
EN

Stack Overflow用户
提问于 2011-06-16 16:44:03
回答 2查看 2.1K关注 0票数 0

好吧,首先,我刚开始使用C#,所以我并不是最熟练的程序员。好了,这就是我的问题,可能在你们看来很愚蠢;)

我有一个朋友让我做的足够简单的应用程序。到目前为止,我已经用了一点Google,但我还是坚持这样做。应用程序运行良好,最小化到系统托盘,最大化从系统托盘,这是很好的。但是,当我从该应用程序打开第二个表单时,它会在系统托盘中创建另一个图标,并在每次打开另一个表单时开始复制。所以最终我有了很多图标,它们都是主窗体的独立实例。系统托盘事件

代码语言:javascript
复制
private void notifyIcon_systemTray_MouseDoubleClick(object sender, MouseEventArgs e)
{
    if (FormWindowState.Minimized == WindowState)
    {
        Show();
        WindowState = FormWindowState.Normal;
    }
}
private void CronNecessityForm_Resize(object sender, EventArgs e)
{
    notifyIcon_systemTray.Visible = true;
    if (FormWindowState.Minimized == WindowState)
        Hide();

}
private void restoreContextMenuItem_Click(object sender, EventArgs e)
{
    Show();
    WindowState = FormWindowState.Normal;
}

要打开表单,请执行以下操作:

代码语言:javascript
复制
private void preferencesToolStripMenuItem_Click(object sender, EventArgs e)
{
    CronPreferences.formPreferences CronPreferences = new CronPreferences.formPreferences();
    CronPreferences.Show();
}

关闭它:

代码语言:javascript
复制
private void button2_Click(object sender, EventArgs e)
{
     this.Hide();
}

如何将所有窗体映射到系统托盘中的同一图标?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-16 17:19:24

您将需要一个全局托盘图标,它们都可以访问。为此,请使用静态变量,该变量在类的不同实例中保持不变。

然后,如果你想:

  • 打开一个表单:在变量中保留对最新表单的引用并将其打开。
  • 打开所有最小化的表单:遍历每个表单,然后再次打开它们。
票数 2
EN

Stack Overflow用户

发布于 2011-06-16 17:17:13

如果我没弄错的话,您只想让应用程序的一个实例保持运行。在这种情况下,你的标题有点误导,因为你的问题与托盘图标或多个表单无关。

  • Code Project: A Single Instance Application which Minimizes to the System Tray when Closed

另一方面,如果您的应用程序中确实有一个main form,它会打开second form (它会创建一个托盘图标),在这种情况下,您只需确保您的第二个form只实例化一次:

代码语言:javascript
复制
public class MainForm
{
    private SecondForm _secondForm;

    public void OpenSecondForm()
    {
         // create it only once
         if (_secondForm == null)
             _secondForm = new SecondForm();

         // otherwise just show it
         _secondForm.Show();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6369197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档