【发布时间】:2015-09-25 11:38:57
【问题描述】:
我有一个带有初始屏幕的 Windows 窗体应用程序。当我运行应用程序时,初始屏幕显示正常,然后消失,并且加载了应用程序的主窗体。
但是,当我加载主窗体时,它会出现在包含应用程序的 Windows 资源管理器目录下。这是一段代码,它运行启动画面,然后是主窗体。
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
Thread t = new Thread(new ThreadStart(SplashStart));
t.Start();
Thread.Sleep(1500);
InitializeComponent();
t.Abort();
}
public void SplashStart()
{
Application.Run(new SplashScreen());
}
}
}
如何让Form1 显示在所有其他窗口之上?
【问题讨论】:
-
在主表单加载时尝试使用
TopMost。 msdn.microsoft.com/en-us/library/… -
不要使用
TopMost,它会导致窗口总是停留在顶部。您在这里做错了一些事情,使用多个Application.Run调用(在 program.cs 文件中有一个),在线程上运行另一个表单等。从 program.cs 文件显示启动画面,而不是从您的主窗体,并且没有任何充分的理由为其使用单独的线程,实际上这不是一个好主意,因为 UI 项应该是单线程的,并且都在 UI 线程上运行。 -
非常感谢 Ron Beyer .. 使用多个 Application.Run 调用根本原因。