너굴이
1
안녕하세요.
C# 메인 winform창에서 mouusemouse이벤트를 걸었습니다.
마우스 위치를 계속 체크해야 합니다.
일반적인 폼에서는 잘 호출 됩니다.
하지만, 마우스가 inputpenel이나, button, menustrip, label 위로 올라가면 mouse_move가 호출이 안됩니다.
inputpenel, button, menustrip, label 에 각각 이벤트를 걸어주는게 최선일까요?
더 좋은 방법이 있으면 도움 부탁드립니다.
감사합니다.
1개의 좋아요
winform에선 WPF처럼 이벤트 버블링/터널링 처리가 없어서 지극히 정상 입니다.
말씀 하신 것 처럼 모든 요소에 해당 이벤트를 처리 하던지
최상위 윈도우에서 윈도우 핸들을 후킹해서 mouse move 이벤트를 처리 하는 방법이 있습니다.
1개의 좋아요
너굴이
3
답변 감사합니다.
손이 최소한 가능 방법으로 찾아봐야겠습니다.
1개의 좋아요
form에 KeyPreview 속성값을 True로 바꿔보세요
1개의 좋아요
폼 로드 이벤트 에서
폼내 모든 컨트롤 루프 돌면서 마우스 이벤트를 하나의 메소드로 할당 한 후에
해당 메소드 에서 처리… 하면 안될랑가여 ?
1개의 좋아요
너굴이
7
댓글 감사합니다.
화면 좌측,우측, 하단에 있는 컨트롤들을 조금씩 화면 중심으로 더 이동시켜 여백을 만들었습니다.
메뉴부분만 이벤트를 줘서 잡았습니다.
어느정도 기능 개발 마무리되면, 변경해볼 방법으로 검토중입니다.
마우스가 왔을때 다른일들을 해야 하는것들도 있어서, 하드코딩으로 그분할수가 없을것 같아, 조금 더 고민하고있습니다.
1개의 좋아요