C# 模态形式在关闭时不消失

C# 模态形式在关闭时不消失,c#,winforms,modal-dialog,messagebox,C#,Winforms,Modal Dialog,Messagebox,我有一个情态动词,比如form1。有一个按钮,当用户单击它时,另一个模态表单显示为formchild。如果有任何错误,我想取消formchild并显示一个messagebox。 我使用以下代码。然而,我看到的是一个messagebox显示在formchild的顶部。 如何使formchild消失/关闭?谢谢 formchild.DialogResult = DialogResult.Cancel; formchild.Close(); Messag

我有一个情态动词,比如form1。有一个按钮,当用户单击它时,另一个模态表单显示为formchild。如果有任何错误,我想取消formchild并显示一个messagebox。 我使用以下代码。然而,我看到的是一个messagebox显示在formchild的顶部。
如何使formchild消失/关闭?谢谢

        formchild.DialogResult = DialogResult.Cancel;
        formchild.Close();
        MessageBox.Show(error, "Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); 
为什么不在给formchild打电话之前先说“如果”呢

//some codes here:
if (!Error)
    formchild.ShowDialog();
else
    Messagebox.Show("Error has occured.");
或者,如果不可能,请尝试将if语句放入formchild.Load中

      private void formchild_Load(object sender, EventArgs e)
  {
       //some codes here:
           if (Error)
           {                        
                Messagebox.Show("Error has occured.");
                this.Close();
           }
  }

对于formchild,解决方案设置为可见为false。谢谢

formchild.Visible = false;
formchild.Close();
MessageBox.Show(error, "Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); 

谢谢在异步完成web服务调用时显示formchild。formchild将一直显示,直到web服务调用完成。若web服务调用返回错误,那个么我需要消除formchild和displayerror。如果不是,我干脆辞退formchild,做些别的事情。这就是为什么我不能在formchild_load或在showDialog之前完成它。谢谢我似乎不理解你的处境。。运行web服务调用时是否显示formchild?然后,它将在web服务调用完成后再次显示?它在web服务运行时显示,在web服务完成时关闭。