【问题标题】:Application not visible in taskbar when using Application.Run()使用 Application.Run() 时,应用程序在任务栏中不可见
【发布时间】:2011-08-04 06:41:38
【问题描述】:

我正在使用 C#.Net 创建一个 Windows 应用程序。我在使用以下代码启动应用程序时显示了一个表单:

Form myForm = new MyForm();
Application.Run(myForm);

应用程序没有出现在任务栏中,但我知道它正在运行,因为我可以使用 Alt-TAB 导航到应用程序窗口。

如果我使用myForm.ShowDialog(),应用程序在任务栏中可见。

我在这里错过了什么?

更新:ShowInTaskbar 属性为表单设置为 true。 UPDATE2:FormBorderStyle 设置为None

【问题讨论】:

  • 您的表单是否继承自任何类?
  • 会不会是一些愚蠢的事情,比如如果您使用 Windows7 它会出现在已经打开的其他窗口组中?
  • @Tigran :好吧,我不认为 Windows 7 会犯这个愚蠢的错误。
  • @S.Amani - 是的,它继承自 'GenericForm',它有一些来自确定/取消按钮和其他东西的默认操作。
  • @Tigran - 不,不是这样。

标签: c# .net taskbar


【解决方案1】:

使用 .NET Framework 4.6.1,切换:

this.ShowInTaskBar = false;
this.ShowInTaskBar = true;

导致FormClosing 事件被触发。

Shown 事件中调用this.Activate() 可以正常工作。

在我的例子中,它是非模态表单,调用以ShowDialog() 显示,但创建和显示表单的请求是从管道发送的。当用户单击主窗体执行时,一切正常,窗体显示并出现在任务栏上。

【讨论】:

    【解决方案2】:

    form load 事件中使用这两行切换ShowInTaskbar

    This.ShowInTaskbar = False
    This.ShowInTaskbar = True
    

    它对我有用。

    【讨论】:

    • 猜猜当你继承一个类时会发生这种情况。这对我也有用
    【解决方案3】:

    在 Form_Shown 事件中添加 Activate()。

    【讨论】:

      【解决方案4】:

      在表单加载期间,您不能将空字符串设置为窗口标题。 这就是今天发生在我身上的事情(我的窗口标题是从丢失的文件中检索到的,因此窗口从任务栏中消失了)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-31
        • 2014-12-14
        • 2022-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多