2009-07-14 2 views
10

C#/.NET 3.5/WinForms모달 대화 상자의 모달 대화 상자 - 두 번째 대화 상자가 닫히면 닫힙니다 - 왜?

다른 모달 대화 상자 양식을 여는 모달 대화 상자 양식을 여는 양식이 있습니다. 내부 대화 상자에는 확인 및 취소 버튼이 있으며 AcceptButton 및 CancelButton은 각각 설정됩니다.

내부 대화 상자에서 Enter 키를 누르거나 확인을 클릭하면 외부 대화 상자도 닫힙니다. 내가이 일을하는 곳을 볼 수 없다. 예상되는 행동인가?

나는 코드를 제공 할 수 있지만 나는 이것을 어수선하게하고 싶지 않았다.

+0

바깥 쪽 대화 상자가 [ShowDialog를 통해] 모달로 실행되고 있습니까? 디버거에서 호출 한 후에 중단 점을 배치 할 수 있어야합니다. 하지만 당신이하고있는 일에 약간의 미묘함이 있는지 물어 보지 못했을 것 같아요. –

+0

그래, 코드를 밟았지만 아무 것도 내지 않고 바깥 쪽에서 바깥쪽으로 튀어 나왔다. – serialhobbyist

답변

17

ShowDialog 호출이 소유자의 상태도 수정하기 때문에 이런 현상이 발생합니다. (this를 볼이 오랜 문제가있다

private void Button1_Click(object sender, EventArgs e) 
{ 
    InnerDialog inner = new InnerDialog() 
    DialogResult innerResult = inner.ShowDialog(this); 
    this.DialogResult = DialogResult.None; 
} 

:

는 두 번째 대화에 ShowDialog 호출 후 DialogResult.None에 처음 모달 대화 상자의 DialogResult을 재설정해야 할 일이 발생하지 않도록하려면 게시하다).

+0

그게 전부입니다. 나는 오래 전이 기사를 쓴다는 느낌을 받았지만 그것을 찾을 수 없었고 Google은 도움을주지 못했습니다. 문제 해결됨. 매우 감사합니다. – serialhobbyist

+0

아마도이 문제가 해결 되었습니까? 나는. NET 3.5 SP1을 가지고 * NOT *이 동작을 참조하십시오. – NascarEd

+0

아마도 그렇게. 난. NET 3.5 SP1에서 그것을 시도하고 동작을 얻지 못했습니다. 나는 확실히 그것을 가지고있다. 닷넷 2.0. – adrianbanks

0

나는이 게시물을 찾을 때까지 하루 종일 이걸로 고생했습니다. .NET 4에서는 수정되지 않았습니다.

관련 문제