加ctrl控制,正常可以移动,需要定位时候,按住左边/右边ctrl,吸引鼠标到左下/右上的网格。alt键也可以使用。

解决方案 »

  1.   

    我觉得AUTOCAD里的网格点捕捉很好用的,好像很有磁性....,感觉也很舒服
      

  2.   

    可以每隔几个MouseMove再处理一个MouseMove。
    或者不在MouseMove中处理,定时对鼠标位置处理。
    只是想法
      

  3.   

    似乎解决了ptCurrent.X = (e.X + 2) / 5* 5;
    ptCurrent.Y = (e.Y + 2) / 5* 5;
    if (ptCurrent.X != e.X && ptCurrent.Y != e.Y)
    Cursor.Position = PointToScreen(ptCurrent);已经很灵活了
      

  4.   

    可以设置一个外部POINT变量,记录上次鼠标点的位置.
    Point OldP;
    private void MouseMove(object sender, system.Windows.Forms.MouseEventArgs e)
    {
        if((abs(e.X-OldP.X)>5 )||(abs(e.Y-OldP.Y)>5)){
            OldP=e;
            return; 
        } 
        ptCurrent.X = (e.X + 2) / 5* 5;
        ptCurrent.Y = (e.Y + 2) / 5* 5;
        if (ptCurrent.X != e.X && ptCurrent.Y != e.Y)
    Cursor.Position = PointToScreen(ptCurrent);
        OldP=e;
    }