在我的主表单的开头,我有一个用于启动画面和计时器的线程。
public xMainForm()
{
//start timer and bring in splashscreen
Thread t = new Thread(new ThreadStart(SplashScreen));
t.Start();
Thread.Sleep(5000);
InitializeComponent();
}//end public xMainForm
这一切都很好。我的启动画面上的计时器导致我的xMainForm初始化,并在我的启动画面上启用一个按钮。
private void xTimer_Tick(object sender, EventArgs e)
{
//use xTimer_Tick to give continuous countdown
if(countDown < 100)
{
countDown = countDown + 1;
xCountLabel.Text = Convert.ToString(countDown);
}
else
{
xTimer.Stop();
xCountLabel.Visible = false;
xGoLabel.Visible=true;
}
}//end xTimer
private void xGoLabel_Click(object sender, EventArgs e)
{
this.Close();
}//end xGoLabel_Click
是否可以在我的主窗体上放置一个声明来检查我的启动画面是否仍然打开,以及是否等到主窗体初始化之前它已关闭?
基本上我希望计时器显示按钮,按钮在点击时显示我的主表格。
感谢任何帮助。谢谢。
答案 0 :(得分:0)
您不需要在此应用程序中使用多个线程。如果您只想一次显示一个窗口,请在Program.cs
。
Application.Run(new SplashScreen());
Application.Run(new xMainForm());
当然,这不是一个真正的启动画面,它应该允许主窗口在启动时显示初始化,但它可以完成你想要做的事情。
答案 1 :(得分:0)
是的,你可以检查一下
if (Application.OpenForms["yoursplashscreen"] != null)
{
//splash screen is open
}