在C#中显示新表单时出错

时间:2018-06-07 19:26:24

标签: c#

我需要你的帮助 我创建了一个表单并插入一个计时器&进度条进入它 当进度条的值达到100%时,我想关闭此表单并打开程序的主要形式
我写这段代码但是当我运行程序时它会显示这个错误:
(已经模态显示的表单不能显示为模式对话框。在调用showDialog之前关闭表单。)
我如何解决这个问题

    Form1 MainForm = new Form1();
    public Welcome_window()
    {
        InitializeComponent();
        timer1.Start();
    }
    private void timer1_Tick(object sender, EventArgs e)
    {
        progressBar1.Increment(10);
        if (progressBar1.Value == 100)
        {
            this.Visible = false;
            MainForm.Visible = false;                                       
            MainForm.ShowDialog();
            this.Close();                          
          }
    }
}

1 个答案:

答案 0 :(得分:2)

我认为问题在于您没有停止计时器,因此即使进度已达到100%,也会触发tick事件。

Form1 MainForm = new Form1();
public Welcome_window()
{
    InitializeComponent();
    timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
    progressBar1.Increment(10);
    if (progressBar1.Value == 100)
    {
        timer1.Stop(); 

        this.Visible = false;                                      
        MainForm.ShowDialog();
        this.Close();                
    }
}