2013-04-30 2 views
-1

VB.net으로 작성된 채팅 응용 프로그램을 사용하여 사무실에있는 LAN에 연결된 사용자간에 채팅하는 데 사용됩니다. 사용자가 새 채팅 메시지를받을 때마다 응용 프로그램이 팝업됩니다. 그것은 Windows XP에서 잘 작동합니다. 그러나 때로는 윈도우 8에서 애플리케이션이 채팅 창을 팝업하지 못합니다. 새 메시지에 팝업이 나타나면 내 채팅 창이 맨 위에 나타나지 않습니다.양식이 Windows 8에서 팝업되지 않습니다.

폼을 최상위로 가져올 수있는 setwindowspos, form.Show(), form.BringToFront()를 사용해 보았습니다. 그러나 때로는 이것이 제대로 작동하지 않을 수도 있습니다. 그래서 다른 방법이 있습니다 (내가 위에서 언급 한) 세 가지 이외의 나는 폼 팝업을 만들 수 있고 전면에 가져다 사용할 수 있습니다.

+0

예외가 발생합니까? 또는 그 동작을 설명 할 수있는 다른 것이 있습니까? – Patrick

+0

TopMost = true? – Max

+0

추가 정보는 제공하지 않습니다. 질문을 삭제해야합니까? – MikroDel

답변

2

WinForms 응용 프로그램이 데스크톱 응용 프로그램이므로 Windows 8에서 팝업이 표시되지 않는 이유는 바탕 화면이 보이지 않기 때문입니다.

Windows 8은 완전히 새로운 시작 화면 인터페이스를 가져오고 데스크톱을 an alternate mode으로이 끕니다. 모든 데스크톱 응용 프로그램은 계속 실행되지만이 별도의 모드로 실행되며 새로운 Metro 응용 프로그램과 상호 작용할 수 없습니다. 그렇습니다. Microsoft didn't listen to Larry Tesler and have decided instead to mode us in에서 유용성을 느낄 수 있지만, 입니다.

어쨌든 팝업은 계속 표시되지만 보이지 않는 바탕 화면에 표시되고 있습니다. 바탕 화면의 다른 모든 창의 맨 위에 이미 있으므로 최상위로 가져 오지 않는 것이 좋습니다. 시작 화면에서 "바탕 화면"타일을 클릭하면 창이 보입니다.

이 문제를 해결하려면 약간의 작업이 필요합니다. 데스크톱 모드로 포커스 스위치를 강제하는 것은 유용성 측면에서 볼 때 끔찍한 생각이며, 심지어 가능할 지 확신하지 못합니다. 더 나은 해결책은 Toast notifications 대신에 can be done from a desktop application을 사용하는 것입니다.

관련 문제