2011-10-26 5 views
1

양식을 닫고 form.Dispose()으로 닫습니다. 그러나 열린 모든 MessageBox가 닫히지 않는 문제가 있습니다. 그들은 여전히 ​​열려 있습니다. 폼을 닫을 때 모든 MessageBox를 닫는 방법? 이것이 가능한가?양식을 닫을 때 열려있는 모든 MessageBox를 닫는 방법을 닫습니다.

소형 프레임 워크를 사용 중입니다. 3.5

+0

메시지 상자를 없애는 가장 좋은 방법은 Show() 메서드를 호출하지 않는 것입니다. * 매우 * 아껴서 사용하십시오. 그 중 하나를 보여 주어야한다면 자동으로 닫는 것이 이치에 맞지 않습니다. –

답변

5

이것은 불가능합니다. MessageBox는 사용자가 응답 할 때까지 호출되는 스레드를 차단하는 user32.MessageBox API를 래핑합니다. 그것들은 모달 (modal)이되도록 설계되어있어 닫으려면 프로세스를 종료해야합니다.

양식을 사용하여 MessageBox 구현을 직접 작성하고 ShowDialog를 사용하여 모달로 만들 수 있습니다. 그렇게하면 혼자서 닫을 수 있습니다.

+0

thx 다항식 설명 – senzacionale

+0

다행스럽게도 :) – Polynomial

관련 문제