控件的DoubleClick事件,对左键双击和右键双击都有响应不使用MouseDown、MouseUp,能不能在DoubleClick事件处理的地方就简单的判断出是左键双击还是右键双击?或者有没有方法只允许左键双击引发DoubleClick事件?

解决方案 »

  1.   

    if(e.Button == MouseButtons.Left)
      {
         DoSomething();
       }
      

  2.   

    if(e.Button == MouseButtons.Left)
      {
         DoSomething();
       }——————————————————————DoubleClick事件的e参数是EventArgs 而不是 MouseEventArgs吧?
      

  3.   

    呵呵,
    1 添加 控件的DoubleClick事件处理函数。
    2 处理代码大致如下。yzsb1118(我) 说的对,确实很明显。private void Form1_DoubleClick(object sender, System.EventArgs e)
    {
      switch(e.Button)
      {
        case MouseButtons.Left:
        //do something
        break;
        case MouseButtons.Middle:
        //do something
        break;
        case MouseButtons.Right:
        //do something
        break;
        default:
        //do something
        break;
       }
    }
      

  4.   

    回复人: HuaGer(华戈) ( ) 信誉:100  2005-07-17 13:02:00  得分: 0  
       呵呵,
    1 添加 控件的DoubleClick事件处理函数。
    2 处理代码大致如下。yzsb1118(我) 说的对,确实很明显。private void Form1_DoubleClick(object sender, System.EventArgs e)
    {
     switch(e.Button)______________________________________________________可是  System.EventArgs 根本没有 button成员啊?
      

  5.   

    呵呵,大意了。没有实践就没有发言权,我刚才测试了一下不行。
    只有mousedown 和mouseup中有button的类型,在里面设置一个变量来记录还可以,单独的double还是没办法。不过也挺好控制的呀,并没有太多的代码,就设置一个变量就可以呀。
      

  6.   

    主要是充分利用一点,在DoubleClick之前肯定是 有click,MouseUp,MouseDown事件,肯定会触发的。
    我们只要在最后一个事件里面设定一个变量,在DoubleClick里面判断就可以咯
    MouseButtons m_MB;
    private void Form1_MouseUp(object sender, System.EventArgs e)
    {
      m_MB = e.Button;
    }private void Form1_DoubleClick(object sender, System.EventArgs e)
    {
      switch(m_MB)
      {
        case MouseButtons.Left:
        //do something
        break;
        default:
        //do something
        break;
       }
    }
    这样子应该可以咯,我试过。
      

  7.   

    主要是充分利用一点,在DoubleClick之前肯定是 有click,MouseUp,MouseDown事件,肯定会触发的。
    ————————————————————
    看来只能是这样了,谢谢你