2017-10-23 7 views
0

(NET Compact Framework에서 3.5, 윈도우 CE 6.0)C# Form2.ShowDialog() 및 마우스 커서

내가 마우스 커서를 숨길

.
그래서 Curosr.Hide()를 사용합니다.

두 개의 Form1, Form2가 있습니다.
Form2의 크기가 Form1보다 작습니다.
PictureBox1은 Form1에 있습니다.
PictureBox1을 클릭하면 Form2가 열립니다. (모달)

이 시점에서 마우스 커서가 갑자기 Form2 영역 외부에 나타납니다.
MouseDonw PictureBox1 -> Form2.ShowDialog -> 표시 MouseCursor는

내가 Cursor.Show을 해본 적이있다()

왜 마우스 커서가 나타 납니까?


추가 내가 '이는 MouseUp 이벤트'에 'MouseDown 이벤트'에서 Form2.ShowDialog()를 이동 한 다음
. 해결된다. 왜?

+0

이미 form2에 기본 마우스 커서가 있기 때문입니다. 폼의 init 또는 load에서도 커서를 숨겨야합니다. –

+0

@BhubanShrestha 감사합니다. 귀하의 의견에 따라 Form2의 Initializer에 Cursor.Hide()를 추가했지만 해결되지 않았습니다. 나는 다른 방법을 시도했다. Form2.ShowDialog()를 'MouseDown Event'에서 'MouseUp Event'로 옮겼습니다. 해결된다. 왜? –

답변

0

먼저 show 및 기타 'actions'형식은 일반적으로 마우스 클릭 이벤트로 수행됩니다. 그것은 마우스를 내리고 마우스를 올리면 발사됩니다.

정상적인 순서를 벗어난 경우 (예 : 마우스 다운 이벤트에서 양식 표시) GUI는 '마우스 아래로/이동'모드입니다 (예 : 요소를 끌거나 선을 그 으십시오).

각 요소는 마우스 커서를 표시하거나 숨길 수 있으므로 Windowing System은 두 번째 양식에서 커서 숨기기를 인식하지만 마우스 위로 이벤트가 수행되지 않아도 첫 번째 양식에 마우스 커서가 계속 표시됩니다.

기본 사항에 대해 더 자세히 알고 싶으면 고유 한 WndProc 및 창 메시지 처리 방법을 살펴 봐야합니다. Charles Petzold의 프로그래밍 Windows는 여전히 Windows 프로그래밍 용 성경입니다.

+0

고맙습니다. 마우스 이벤트는 Windows CE 6.0에서 작동합니다. Windows CE 5.0에서는 Form1의 MouseUp 이벤트가 발생 했으므로 이러한 문제가 없음을 알게되었습니다. 감사! –