以前的表格没有及时清理新表格

时间:2012-03-23 20:13:19

标签: c# .net winforms

我有一个显示ShowDialog()的表单。关闭该表单后,我会显示一个带有进度条的新表单,但在进度条表单出现之前,之前的表单没有完全删除。我该如何处理?

using(FormA formA= new FormA)
{ 
    if(formA.ShowDialog()==DialogResult.OK)
    {

    }
}

FormB formB = new FormB;
formB.Show();
...{
    formB.progressBar.PerformStep();
...}
formB.Close();                 

2 个答案:

答案 0 :(得分:1)

你可能正在阻止UI线程,试试这个:

using(FormA formA= new FormA)
{ 
    if(formA.ShowDialog()==DialogResult.OK)
    {

    }
}

Application.DoEvents(); //make sure the ui refreshes

FormB formB = new FormB;
formB.Show();
...{
    formB.progressBar.PerformStep();
...}
formB.Close();

答案 1 :(得分:0)

在下面的代码中,FormB代码将在FormA的Form Closed事件中完成,确保FormA在显示FormB之前关闭。

using(FormA formA= new FormA)
{ 
    formA.FormClosed += delegate(...) {
        FormB formB = new FormB;
        formB.Show();
        ...{
           formB.progressBar.PerformStep();
        ...}
        formB.Close();  
    };
    if(formA.ShowDialog()==DialogResult.OK)
    {

    }
}