我了解到,DragDrop-Mode会在Winforms中禁用鼠标移动事件,请看这里:DoDragDrop disables MouseMove Events 所以我不确定我是否有同样的问题:
我有一个带有静态选择事件的UserControl:
internal delegate void ProgramPartSelectedDelegate(ProgramPartControl sender, Point offset);
我的想法非常简单:在用户点击Control之后,他可以在鼠标所在的Point处绘制一条线。此外,我试图实施延迟半秒。
My Mouse-Move看起来像这样:
void _form_MouseMove(object sender, MouseEventArgs e)
{
//System.Diagnostics.Debug.WriteLine("{0} {1} 1", this.GetType().Name, MethodBase.GetCurrentMethod().Name);
Point p = new Point(e.X, e.Y);
System.Diagnostics.Debug.WriteLine("p: {0} {1}, _point: {2} {3}", p.X, p.Y, _point.X, _point.Y);
if (p != _point && _selectedPart != null)
{
System.Diagnostics.Debug.WriteLine("Start Timer");
_point = p;
_timerHelper.Start();
}
}
但是只要_selectedPart中的Control设置在此处:
void ProgramPartControl_ControlSelected(ProgramPartControl sender, Point offset)
{
System.Diagnostics.Debug.WriteLine("Contol selected");
_selectedPart = sender;
_partOffset = offset;
}
鼠标移动不再拍摄。 这是我的修补问题还是与DragDrop相同的问题?如果这是一个已知问题,还有除DragDrop之外的其他解决方案吗?基本上我不想使用它,因为我只想检查鼠标指针。
提前致谢