有关于MouseDown事件里怎么去监听MouseDown有没有被触发
Form上有一个圆点,当我鼠标在Form上点了一点之后,圆点就向我的鼠标点移动,如果这个时候我再点一下,我希望鼠标按照我新点的位置移动,就是说我必须在MouseDown事件里去监听MouseDown是不是再次被触发   
 请各位高手教教小弟!
------解决方案--------------------你在MouseDown事件里面写上相应的操作代码不就行了 还要监听什么?直接有这个事件
------解决方案--------------------在窗体上加入成员标志  
 bool IsFirstDown = false; 
 在MouseDown中判断 
 if(!IsFirstDown) 
   IsFirstDown = true; // 当前是第一次按下 
 else 
  IsFirstDown = false;
------解决方案--------------------圆点是控件?还是GDI画图?   
 ----------------- 
 如果圆点是控件(如imageBox),只要分别监听Form和控件的MouseDown   
 如果是GDI画图,只要在Form类里加一个bool标识变量!
------解决方案--------------------你在MouseDown事件里面写上相应的操作代码不就行了 还要监听什么?直接有这个事件   
 同意这种意见,直接MouseDown事件里面写就行了 
 MouseDown事件里的代码的任务就是把圆点移动到鼠标所在处 
------解决方案--------------------压根就不存在需要监听的问题~~~~     
 不过如果你一定要监听,有的是方法,Windows消息也行, 用事件委托也行
------解决方案--------------------lz说的应该是圆点移动的动画效果吧,圆点向鼠标点击位置移动有个过程,比如说在1秒钟内平均速度移动过去。在0.5秒的时候鼠标又在另外一个位置点击了一下,然后要让圆点移动方向改变成朝新的点击位置移动,对不对?   
 保存2个位置,一个圆点当前位置,一个是鼠标点击位置。每次鼠标点击时记录鼠标点击位置。每隔一段时间(比如说0.1秒)将圆点位置向保存的鼠标点击位置移动一定距离。
------解决方案--------------------至少需要保存2个变量,就是圆点当前位置和鼠标点击位置。如果你不想用定时器每隔一段时间重绘圆点位置的话,循环不能用局部变量判断,要放在Form里作为成员变量。   
 比如 
 Form{ 
    Point start; 
    Point target; 
    Point current; 
    int step; 
    bool isMoving = false;   
    void MouseClick(MouseEventArgs e){ 
    start = current; 
    target = e.Point; 
    step = 0; 
    if(!isMoving){ 
      isMoving = true; 
      for(;step < max;step++){ 
        current = GetCurrent(start ,target ,step); 
        Draw(); 
        sleep(100);//这里用sleep应该不行,换成你自己所实现的定时 
      } 
      isMoving = false; 
    } 
 }   
 自己看下可不可以改,最好要加上同步。
------解决方案--------------------想法: 
 圆点移动需要另外启动一个线程 
 这个线程和界面的UI线程进行交互 
 交互的数据就是你点击位置 
 新线程每移动一步 
 都根据UI线程中通过MouseClick事件的得到的新的位置进行方向调整 
 然后在移动,直到与点击位置重合
------解决方案--------------------你是怎么绘图的,用自己写的线程还是用Timer控件定时控制? 
 我想你不会是用简单的for循环来控制吧??   
 无论是线程还是Timer,过程应该是 
 1.MouseDown事件接收到鼠标的点击事件; 
 2.判断绘图线程是否启动(即判断绘图标志是否启动 if(!drawing) ),如果没有启动,那么开始启动绘图线程,设置绘图标志为正在绘制的状态 drawing = true,同时在全局变量(可以设置为静态)中记录目标的位置X和Y; 如果已经启动,那么重新设置X,Y的值,线程应该会根据X,Y的值重新计算移动的方向并移动. 
 3.移动到目标点,设置drawing  = false,等待下一次的命令 
------解决方案--------------------中途有点了自动就会停止当前动作处理新的移动事件了 
 要全局变量判断第几次干什么?
------解决方案--------------------设置个标志嘛 
 比如弄个GUID表示最后次鼠标点击生成的标志,循环移动的时候判断这个标志   
 窗体类里面申明一个 
 private string id;   
 mousedown: 
 id = Guid.NewGuid().ToString();   
 move: 
 string oldid = id; 
 while(oldid == id) 
 { 
    ....... 
 }
------解决方案--------------------你代码怎么写的  最好贴一下 
 如果x y存在全局里面还是不需要bool变量的
------解决方案--------------------你是直接用Form的sleep()吗?那样不行,线程停了就不会响应click事件了。 
 要另外起个线程,用VS提供的定时器好了。
------解决方案--------------------aaajedll() :