문제

MDI 응용 프로그램이 있습니다. MessageBox.Show ()를 사용하여 메시지 상자를 표시하면 메시지 상자를 기각 할 때 전체 응용 프로그램이 열린 모든 창문 뒤에서 사라집니다.

코드는 특별한 일을하지 않습니다. 실제로, 여기 MDI 자식 양식 내에서 메시지 상자를 호출하는 줄이 있습니다.

MessageBox.Show(String.Format("{0} saved successfully.", Me.BusinessUnitTypeName), "Save Successful", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly)

me.businessUnittypename ()는 멤버 변수의 값에 따라 문자열을 반환하는 읽기 전용 속성 getter입니다. 이 속성에는 부작용이 없습니다.

어떤 아이디어?

도움이 되었습니까?

해결책

마지막 매개 변수를 제거하고 MessageBoxOptions.DefaultDesktopOnly.

에서 MSDN:

DefaultDeskToponly로 인해 메시지 상자가 초점을 잃게 된 응용 프로그램이 발생합니다. 표시된 메시지 상자는 시각적 스타일을 사용하지 않습니다. 자세한 내용은 시각적 스타일의 렌더링 컨트롤을 참조하십시오.

마지막 매개 변수는 csrss.exe의 수단을 통해 활성 데스크탑과 배경 Windows 서비스를 통신 할 수 있습니다! Bart de Smet 's를 참조하십시오 블로그 게시물 자세한 내용은.

다른 팁

제거하십시오 MessageBoxOptions.DefaultDesktopOnly 매개 변수 및 올바르게 작동합니다.

DefaultDesktopOnly 그것을 지정합니다 "메시지 상자는 활성 데스크탑에 표시됩니다"초점 손실을 일으킨다.

이 답변은 정확하지만 다른 요점을 추가하고 싶었습니다. 다른 사람의 코드와 함께 일하는 동안이 질문을 발견했습니다. 간단한 메시지 상자는 앞쪽 창이 뒤쪽으로 이동하게하는 것입니다.

MessageBox.show ( "Hello").

메시지 상자 앞에 bindingSource.endedit 명령이있었습니다. BindingSource는 아직 컨트롤에 연결되어 있지 않았지만 창이 z- 위치를 변경했습니다.

내 검색 이이 질문에 나온 이후 로이 메모 만 포함되어 있으며 다른 사람에게 도움이 될 것이라고 생각했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top