0

在我的主窗体开始时,我有一个用于启动画面和计时器的线程。

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

是否可以在我的主窗体上添加一个语句来检查我的启动画面是否仍然打开,是否等到它在主窗体初始化之前关闭?

本质上,我希望计时器使按钮出现,并且按钮在单击时显示我的主窗体。

任何帮助表示赞赏。谢谢你。

4

2 回答 2

0

您不需要在此应用程序中使用多个线程。如果您只想一次显示一个窗口,请在Program.cs.

Application.Run(new SplashScreen());
Application.Run(new xMainForm());

当然,这不是一个真正的启动画面,它应该允许主窗口在启动画面显示时进行初始化,但它会完成您想要做的事情。

于 2013-08-29T15:28:29.863 回答
0

是的,你可以检查一下

if (Application.OpenForms["yoursplashscreen"] != null)
{
     //splash screen is open
}
于 2013-08-29T15:41:01.743 回答