2010-05-04 5 views
0

내 MouseDoubleClick 내가 MouseDoubleClick 함께 목록에있는 모든 컨트롤을 호출 할 경우에 실행할 수 있습니다. 그러나 나는 MouseDoubleClick을 호출 할 수 없으며 체인에 이벤트 만 추가/제거합니다.MouseDoubleClick 이벤트를 어떻게 호출합니까? WinForm

어떻게 MouseDoubleClick/OnMouseDoubleClick을 호출합니까?

ATM 내가 문제를 MouseDoubleClick 함수와 나는 그 특정 기능을 호출하는 매개 변수를 전달하기 때문에 나는 문제를 알고 있기 때문에 문제를 해결합니다. 어떻게 내가 제어로 설정되어 어떤 기능을 모르는 경우에는 이벤트를 호출 할 MouseDoubleClick

+0

"winform"태그의 첫 번째 질문 대신에 이전에 사용 된 태그를 사용해보십시오. – ChessWhiz

+0

이상한, 나는 거기에 winform 태그가 없다는 것을 알지 못했다 ... –

+0

대신 "winforms"태그를 사용해보십시오. – ChessWhiz

답변

0

(예를 들어 당신이 목록 상자 컨트롤에 표시 개별 항목을 더블 클릭 수)와 중요 할 수있다 그 특정 함수를 호출하는 매개 변수를 전달합니다. 어떤 기능이 컨트롤에 설정되어 있는지 알 수없는 경우 어떻게 이벤트를 호출합니까? MouseDoubleClick

0

이 작업을 수행하는 방법은 여러 가지가있다 :

  • 당신이하고있는 것처럼, 하드 - 호출을 직접 코딩하십시오. 매우 유연한 접근 방식은 아닙니다.

  • 컨트롤을 호출하기위한 내부 메서드를 추가하거나 (예 : 특수 인터페이스 구현) 관심있는 다른 모든 컨트롤이 구독하는 이벤트를 추가하십시오. 이 방법은 모든 컨트롤에 대한 소스 코드가 있거나 사용자 컨트롤을 파생시킨 경우에만 작동하며 많은 작업이 될 수 있습니다.

  • 목록의 모든 컨트롤에 대해 기본 창에 WM_LBUTTONDBLCLICK 메시지를 게시하십시오. 이것은 핸들러에서 너무 음란 한 일을하지 않는 한 어떠한 종류의 컨트롤에도 적용됩니다. 각 컨트롤 내에서 가짜 x, y 좌표를 찾아서 두 번 누르는 것이 자신의 경계 안에 있다는 것을 속이려면 컨트롤의 경계 밖에서 더블 클릭을하면 정의되지 않은 동작이 발생할 수 있습니다. 그리고 물론, 컨트롤 내의 클릭의 위치는 내가 객체 MouseDoubleClick 기능을 알고 있기 때문에 나는이 문제를 해결

관련 문제