2013-07-25 49 views
0

我有一個模態表單,比如form1。有一個按鈕,當用戶點擊它時,另一個模式表單顯示出formchild。如果有任何錯誤,我想解僱formchild並顯示一個消息框。 我使用下面的代碼。但是,我所看到的是一個消息框顯示在formchild的頂部。
如何讓formchild消失/關閉?由於模態表單在關閉時確實關閉

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

回答

0

調用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(); 
      } 
    } 
+0

謝謝。當web服務調用異步完成時,會顯示formchild。將顯示formchild,直到完成Web服務調用。如果Web服務調用返回錯誤,那麼我需要解除formchild和displayerror。如果不是,我只是解僱formchild並做其他事情。這就是爲什麼我不能在formchild_load或showDialog之前做到這一點。謝謝 – toosensitive

+0

我似乎並不瞭解你的情況..當web服務調用正在運行時,formchild會顯示出來嗎?那麼在Web服務調用完成後它會再次顯示? –

+0

Web服務運行時顯示,當Web服務完成時關閉。 – toosensitive

0

將該溶液設置可見爲false formchild。謝謝

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