2011-12-16 79 views
1

我无法为我的ListBox获取MouseDoubleClick事件。我已添加MouseDown 事件。每次我双击MouseDown事件被触发为什么会发生这种情况?Listbox mousedown和doubleclick

回答

2

当您在控件上按下鼠标按钮时,会触发几个事件。他们在这个顺序触发:

  • 的MouseDown
  • 鼠标点击
  • 的MouseUp

DoubleClick事件将被解雇,如果你双击在某个时间段的控制。所以应该提出这个事件。如果您在MouseDown事件中执行某些“魔术”操作,则可能不会引发MouseDoubleClick。

如果您需要更多帮助,请发布MouseDownEvent代码并在WinForms或WPF中标记您的问题。

编辑

如果在MouseDown事件中断点,你正在运行调试器的代码,该MouseDoubleClick不会被调试器捕获。调试UI事件不是很容易...

+0

@感谢Fischermaen上的WinForms您的意见 私人无效listBox_MouseDown(对象发件人,发送MouseEventArgs E) { INT indexOfItem = listBox.IndexFromPoint(e.Location); if(indexOfItem!= -1)string { listBox.DoDragDrop(indexOfItem.ToString(),DragDropEffects.Move); } } – Razack 2011-12-16 09:19:40

1

我正在寻找解决方法来避免此问题,并发现以下内容。当您使用鼠标按下事件时,这将允许双击事件触发。

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