选择Control将禁用MouseMove

时间:2014-04-21 18:08:24

标签: c# winforms

我了解到,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之外的其他解决方案吗?基本上我不想使用它,因为我只想检查鼠标指针。

提前致谢

0 个答案:

没有答案