2012-07-14 3 views
0

다음은 Windows 양식에서 잘 작동합니다.메시지 상자가 닫히고 대리인으로 사용할 때 이벤트 트래핑

그것은 단순히 아이 폼이 닫힐 때 부모 폼에 GroupBorder을 활성화하기 위해 대리자를 사용합니다.

private void uxUpdateDataButton_Click(object sender, EventArgs e) 
    { 
     uxRevisionHelperGroupBox.Enabled = false; 
     uxBindingNavigator.Hide(); 
     uxFormDatabase myNewDisplay = new uxFormDatabase(); 
     myNewDisplay.FormClosed += delegate { activateGroupBorder(); }; 
     myNewDisplay.Show();  
    } 

    public void activateGroupBorder() 
    { 
     uxRevisionHelperGroupBox.Enabled = true; 
     uxBindingNavigator.Show(); 
    } 

위와 같지만 하위 폼 대신 메시지 상자를 사용할 수 있습니까?

private void uxAuthorPictureBox_Click(object sender, EventArgs e) 
    { 
     uxRevisionHelperGroupBox.Enabled = false; 
     uxBindingNavigator.Hide(); 
     MessageBox myMessage = new MessageBox; 
     myMessage.close += delegate { activateGroupBorder(); }; 
     myMessage.Show("hello world"); 
    } 
    public void activateGroupBorder() 
    { 
     uxRevisionHelperGroupBox.Enabled = true; 
     uxBindingNavigator.Show(); 
    }  
+1

MessageBox.Show (...)는 동기 호출입니다. 즉, 상자가 닫힐 때까지 실행이 계속되지 않습니다. 왜 메시지 상자가 끝난 후에 activateGroupBorder()를 호출 할 수 없습니까? 'myMessage.Show ("hello world"); this.activateGroupBorder(); ' – loopedcode

+0

+1 쿨 - 고마워. 왜 그걸 해결책으로 생각하지 않니? – whytheq

+0

답변으로 추가되었습니다. – loopedcode

답변

0

MessageBox.Show(...)이 동기 호출을하고, 상자를 닫을 때까지 실행이 더 계속되지 않습니다 즉 :

는 해결책이 아니다 내 시도이다. 메시지 상자가 완료된 후 왜 activateGroupBorder()으로 전화 할 수 없습니까? 예 :

MessageBox.Show("hello world"); 
this.activateGroupBorder(); 
관련 문제