我设计并编码了一个程序,它有一个用于加载的启动画面。我使用了主窗体中的线程,它将完全关闭加载窗体并显示主窗体。 这个动作需要大约5000名女士 但是当我在程序中使用线程时,在5000 MS之后,Splash Screen将消失并且主窗体将正确显示。 但是在显示主窗体后1或2秒后,程序关闭并进入BreakMode! Donnow为什么。 这是我的代码。也许我的代码有问题。 提前感谢您的建议。
public MainForm()
{
Thread t = new Thread(new ThreadStart(StartForm));
t.Start();
Thread.Sleep(7000);
InitializeComponent();
t.Abort();
}
public void StartForm()
{
Application.Run(new frmSplashScreen());
}
(使用Visual Studio 2015 Enterprise) __________________________UPDATE___________________________ 我使用了这种方法https://stackoverflow.com/a/393870/17034并将表单名称更改为我的。 但是,当我使用我面对BreakingMode的程序时! 这让我发疯了 你的建议是什么? 有没有办法禁用这种模式? 这是我的新代码:
using System;
使用System.Windows.Forms;
使用Microsoft.VisualBasic.ApplicationServices;
namespace University
{
static class Program
{
[STAThread]
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
new MyApp().Run(args);
}
}
class MyApp : WindowsFormsApplicationBase
{
protected override void OnCreateSplashScreen()
{
this.SplashScreen = new frmSplash();
}
protected override void OnCreateMainForm()
{
System.Threading.Thread.Sleep(4500);
this.MainForm = new MainForm();
}
}
}
答案 0 :(得分:3)
你的程序将有一个main.cs来启动你的from.cs并随后显示表单。您要做的是编辑main.cs,以便以非异步方式显示此其他表单。然后在启动屏幕上使用计时器,该计时器在启动时启动,然后在您希望打开的持续时间后关闭。然后main.cs将继续正常运行。
但是,这个答案是基于我已完成的工作,可能与您的项目无关。您可以发布一个git链接或其他代码吗,我会更新我的回答吗?