2011-09-30 3 views
0

사용자에게 메시지를 표시 할 창에서 파생 된 클래스가 있습니다. 문제는 응용 프로그램의 일부 위치에서 예외가 발생한다는 것입니다.창 표시 작업을 재정의하는 방법은 무엇입니까?

많은 UI 구성 요소에 이 필요하기 때문에 호출 스레드는 STA 여야합니다.

나는 메시지 상자를 호출하여 오류를 없애기 위해 Dispatcher를 도입해야한다는 것을 알게되었습니다. messagebox는 여러 위치에서 사용되기 때문에 내가 생각할 수있는 가장 빠른 해결 방법은 show 및 showwindow를 덮어 쓰고 거기에서 메시지 상자를 만들고 표시하는 것입니다.

나는 WPF 창

+1

수 없습니다. 그것은 가상으로 표시되지 않습니다 ... 어쩌면 누군가가 당신을 대신 할 수 있습니다. –

+0

비슷한 질문으로 연결되는 링크는 다음과 같습니다. http://stackoverflow.com/questions/2378016/how-to-run-something-in-the-sta-thread –

+0

public new bool? ShowDialog() {/ * etc * /} –

답변

0

난 당신이 폼을 표시하는 방법 (어쩌면 약간의 오버로드)가 정적 유틸리티 클래스를 만들 것의 표시 및이 ShowWindow 이벤트를 오버라이드 (override) 할 수있는 방법을 가르쳐주세요. Windows.Forms에서 MessageBox과 같은 비트. 이 클래스 내에서 반복 할 필요없이 창을 제대로 표시하는 데 필요한 코드를 작성할 수 있습니다.

관련 문제