2011-12-16 2 views
1

내 ListBox에 대해 MouseDoubleClick 이벤트가 발생하지 않습니다. MouseDown 이벤트를 추가했습니다. 마우스 더블 클릭 할 때마다 이벤트가 시작됩니다 왜 이런 일이 발생합니까?목록 상자 mousedown 및 doubleclick

답변

2

컨트롤 위에서 마우스 단추를 누르면 두 가지 이벤트가 발생합니다. 그들은 순서로 발사됩니다

  • MouseDown
  • MouseClick과를
  • 이는 MouseUp
  • DoubleClick 이벤트가 발사됩니다

, 당신이 특정 시간 범위에서 컨트롤을 두 번 클릭합니다. 그래서 사건은 제기되어야합니다. MouseDown 이벤트에서 "마술"을하면 MouseDoubleClick이 발생하지 않을 수도 있습니다.

더 많은 도움이 필요하면 MouseDownEvent 코드를 게시하고 WinForms 또는 WPF에 질문을 태그하십시오.

편집는 :

당신이 MouseDown 이벤트에 중단 점을 가지고 있고 당신은 디버거에서 코드를 실행하는 경우 MouseDoubleClick은 디버거에 의해 사로 잡았되지 않습니다. UI 이벤트를 디버깅하는 것은 쉽지 않습니다 ...

+0

if (indexOfItem! = -1) 문자열 { listBox.DoDragDrop (indexOfItem.ToString(), DragDropEffects.Move); } } – Razack

+0

다음을 사용하여 수정했습니다. http://msdn.microsoft.com/en-us/library/system.windows.forms.systeminformation.aspx – Razack

+0

@Razack : 끌어서 놓기 목적으로 다른 이벤트가 있습니다 유효한. 드래그 앤 드롭은 런타임에 의해 처리되며, 단지 "피드"가 있습니다. – Fischermaen

1

이 문제를 피하기 위해 해결책을 찾고 있었으며 다음을 발견했습니다. 마우스 다운 이벤트를 사용할 때도 더블 클릭 이벤트가 발생합니다. ; 당신의 윈폼에 대한 의견 개인 무효 listBox_MouseDown (개체를 보낸 사람, MouseEventArgs 형식 전자) { INT indexOfItem = listBox.IndexFromPoint (e.Location)에 감사드립니다 Fischermaen @

private void myControl_MouseDown(object sender, MouseEventArgs e) 
{ 
     if (e.Button == MouseButtons.Left && e.Clicks == 1) 
     { 
      //do my mouse down stuff 
     } 
}