2013-07-25 3 views
0

모달 형식 form1이 있습니다. 사용자가 버튼을 클릭하면 다른 모달 폼이 formchild라고 말합니다. 오류가 있으면 formchild를 닫고 messagebox를 표시하려고합니다. 다음 코드를 사용합니다. 그러나, 내가 보는 것은 formchild의 맨 위에 messagebox가 표시됩니다.
formchild를 사라지게하거나 닫는 방법? 감사합니다닫을 때 모달 형식을 닫습니다.

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

답변

0

왜 formchild를 호출하기 전에 "If"문을 넣지 않으시겠습니까?

//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

감사합니다. 웹 서비스 호출이 비동기 적으로 완료되는 동안 formchild가 표시됩니다. formchild는 웹 서비스 호출이 완료 될 때까지 표시됩니다. 웹 서비스 호출에서 오류가 발생하면 formchild 및 displayerror를 닫아야합니다. 그렇지 않으면 나는 단순히 양식을 무시하고 다른 것을합니다. 그래서 formchild_load 나 showDialog에서이 작업을 수행 할 수 없습니다. 감사합니다 – toosensitive

+0

귀하의 상황을 이해하지 못하는 것 같습니다. 웹 서비스 호출이 실행되는 동안 formchild가 표시됩니까? 웹 서비스 호출이 완료되면 다시 표시됩니다. –

+0

웹 서비스가 실행 중일 때 표시되고 웹 서비스가 완료되면 닫힙니다. – toosensitive

0

해결 방법은 formchild에 대해 표시로 설정됩니다. 감사합니다

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