【问题标题】:C# .NET Windows Form Not DisplayingC# .NET Windows 窗体不显示
【发布时间】:2011-08-22 23:41:08
【问题描述】:

我在 .NET 4.0 Windows 应用程序中有一个 System.Windows.Forms.Form。当我从 Visual Studio 2010 运行应用程序时,表单出现在任务栏中,并且也显示在屏幕上,但位于 Visual Studio IDE 下方。

如果我构建应用程序、发布它、将其安装在另一台 PC 上并运行它,它仍会出现在任何其他窗口下方(例如,我双击可执行文件的 Windows 资源管理器窗口)。

我不希望表单显示为 TopMost,因为这会导致它出现在应用程序之外的所有其他窗口之上,但我确实希望它在启动时出现在所有其他窗口之上,即集中显示。

BringToFront 方法没有影响。有谁知道如何让它工作?

也许相关,但静态 Main() 方法位于单独的程序类中。将静态 Main() 方法移动到表单没有任何影响。该表单未被选为启动对象,因为除非我将静态 Main 方法放在主表单中,否则它不会显示在那里。

请帮忙!

【问题讨论】:

  • 你有没有试过在窗体初始化时把焦点放在窗口上,比如this.focus
  • 是的,我刚刚在您的回复到达时偶然发现了这一点,Senad。谢谢!但我不知道如何将您的回复标记为答案...
  • 其实不行,在构造函数中调用 this.Focus() 不起作用。我完全被难住了......
  • 以防万一有人需要知道。为了解决这个问题,我创建了一个 Form.Load 事件处理程序并向它添加了一个 this.Activate() 方法调用。现在我认为它是有道理的,并且可能是所有有经验的 Forms 应用程序开发人员的标准做法...... :)
  • Main() 可能不应该被移动。也许编辑您的帖子以显示 Main() 的代码以及 Form 的构造函数和 Load 事件的代码。您不必与 TopMost 或 Focus 或 BringToFront 等混淆。

标签: c# winforms


【解决方案1】:

您可以在初始化后聚焦表单

this.Focus();

我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 2011-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多