我有一个显示ShowDialog()
的表单。关闭该表单后,我会显示一个带有进度条的新表单,但在进度条表单出现之前,之前的表单没有完全删除。我该如何处理?
using(FormA formA= new FormA)
{
if(formA.ShowDialog()==DialogResult.OK)
{
}
}
FormB formB = new FormB;
formB.Show();
...{
formB.progressBar.PerformStep();
...}
formB.Close();
答案 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)
{
}
}