2011-10-13 6 views
2

를 사용하여 MouseDoubleClick 누락 구현 나는 MouseDoubleClick 리스너가없는 반면, MouseClick과 이벤트 리스너 구현이있는 제어 할 수 있습니다.MouseClick과 윈폼 컨트롤 이벤트

나는 이미 jQuery.DoubleTap 플러그인의 내 사용자 지정 버전을 사용하는 자바 스크립트 버튼으로 클릭하고 dblclick 이벤트를 구별하는 데 성공했습니다 bit.ly/roCV7h를

그래서 C#에서 비슷한 트릭을 사용하고자하는 님 클릭 이벤트 실행에 지연을 설정하고 제한 시간 전에 다시 발생하면 취소하십시오.

는 I에 유래에 솔루션을 많이 발견하지만, 그들 모두는 스레드 안전하지 않거나 잠을 주 (GUI) 스레드를 넣어.

답변

0

나는 타이머를 사용하여 클릭 수를 저장하는 것입니다. 타이머가 "틱"되면 클릭 수를 확인하고 관련 이벤트를 시작하십시오.

의사 코드 (죄송합니다 머리 위쪽의 타이머 기능을 기억하지 않습니다) ...

Timer timer = new Timer(); //maybe 500 ms elapsed period 
int mouseCount = 0; 

void OnMouseClick() 
{ 
    if(!timer.Enabled) 
     //start timer 
    mouseCount++; 
} 

void OnTimerTick() 
{ 
    timer.Stop(); 
    if(mouseCount == 1) 
     //fire single mouse click event 
    else if(mouseCount > 1) 
     //fire double mouse click event 
    mouseCount = 0; 
} 
+0

난 이후 세 번째 클릭을 클릭 중지하려면 다른 경우에 mouceCount = 0을 추가 할 것 같이 보이는되고 두 번 클릭 – Stuart

+0

@Stuart는, 그 감사는 - 그 부분은 뇌와 손가락 사이 어딘가에 잃었다해야합니다 – musefan

관련 문제