문제
ShowDialog 메서드를 사용하여 모달 양식을 여는 응용 프로그램이 있습니다.이 양식이 표시되면 커서가 양식 외부에 있더라도 마우스 움직임을 캡처하고 싶습니다.마우스 움직임을 어떻게 캡처할 수 있나요?Capture 속성이 있는 것을 보았지만 제대로 작동하도록 할 수 없습니다.
[편집하다]
마우스가 폼 밖으로 이동하면 알림을 받고 싶습니다.
해결책
그만큼 Capture
속성은 올바른 방법이지만 몇 가지 제한 사항이 있습니다.
- 전경 창만 마우스를 캡처 할 수 있습니다
- 시스템의 다른 부분에서 마우스 캡처를 비활성화 할 수 있습니다.
- Win32 API 기능
SetCapture
"마우스 업"이벤트 Occour가 매번 재설정됩니다. .NET에도 적용된다고 가정합니다.
참조 비고 섹션 의 Capture
재산.
마우스가 캡처되면 일반적인 이벤트를받을 수 있지만 더 넓은 마우스 좌표 범위 (예 : 음의 x 위치, 마우스가 캡처 컨트롤에 남아있는 경우).
마우스 캡처는 글로벌 특성이기 때문에 연약합니다. 특정 이벤트를 처리 할 수있는 다른 방법이 있는지 확인하십시오. 아마도 MouseLeave
또는 MouseEnter
귀하의 경우 이벤트로 충분합니다.
제휴하지 않습니다 StackOverflow