zoukankan      html  css  js  c++  java
  • combobox双击事件实现



    方法一:实现双击 ComboBox 事件2012-04-13 10:52

     ComboBox 有双击事件,但是我们也知道永远也不会触发。至于为什么,问微软吧。
     
    但是我们需要触发双击事件的时候怎么办呢?
     
     ComboBox 还有一个单击事件。那么我们就利用这个单击事件来达到双击事件的效果吧。
     
    原理:
     
       1.触发单击事件时,获取系统鼠标的API 函数,即鼠标双击频率。
     
       2.判断鼠标在点击时的频率是否达成系统API 双击鼠标的限度。
     
       3.在判断里边你就可以写上你ComboBox 的双击事件的处理方式了。
     
    说了这么多。那么看代码吧:
     
       * 首先加载进获取系统PAI函数的引用:
    [System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "GetDoubleClickTime")]
    public extern static int GetDoubleClickTime();//重写系统API函数获取鼠标双击的有效间隔
    private DateTime dtCmbLastClick = DateTime.MinValue;//存储两次单击的时间间隔
     
       * 在ComboBox 单击事件里写上判断:
     
    private void ComboBox1_MouseClick(object sender, MouseEventArgs e)
    {
     if (DateTime.Now - dtCmbLastClick < new TimeSpan(0, 0, 0, 0, GetDoubleClickTime()))
       {
           // 双击事件处理方式
       }
     else
      {
       dtCmbLastClick = DateTime.Now;
      }
    }
     
    Is Ok


    方法二:用两次单击的时候来判断一下就行了:可以参见如下的代码:  
       
      DateTime   lastDownTime   =   DateTime.Now;  
      private   void   comboBox1_MouseDown(object   sender,   MouseEventArgs   e)  
      {  
      TimeSpan   sp   =   DateTime.Now   -   lastDownTime;  
      if   (sp.Milliseconds   <=   SystemInformation.DoubleClickTime)  
      {  
      System.Console.WriteLine("DoubleClick");  
      }  
      else  
      {  
      System.Console.WriteLine("Click");  
      }  
      lastDownTime   =   DateTime.Now;  
      }  

    方法三:亲测可用

    private DateTime dtCmbLastClick = DateTime.MinValue;
    private void comboBox1_MouseClick(object sender, MouseEventArgs e)
    {
    if (DateTime.Now - dtCmbLastClick < new TimeSpan(0, 0, 0, 0, 200))
    comboBox1_MouseDoubleClick(sender, e);
    else
    dtCmbLastClick =DateTime.Now;
    }
    private void comboBox1_MouseDoubleClick(object sender, MouseEventArgs e)
    {
    MessageBox.Show("doubleClick !");
    }

  • 相关阅读:
    sqlserver-一次updlock和withnolock和with check option 的报错原因分析
    类库文件引用web服务报错解决方法-在 ServiceModel 客户端配置部分中,找不到引用协定的默认终结点元素
    用timer自定义计划任务时间
    console 程序随系统启动及隐藏当前程序窗口
    爱积多合作农场正式上线试运营
    CSS-三列布局
    CSS-垂直居中
    form表单重置
    CSS3 选择器
    Tab选项卡
  • 原文地址:https://www.cnblogs.com/qixinjian/p/5556331.html
Copyright © 2011-2022 走看看