自定义控件鼠标双击响应事件
1. halcon的自定义控件
这两天做项目发现一个问题,halcon自带的控件hWindowControl的双击响应事件无效:
- 下面的这些事件都无效
- 只有 H 开头的有效,但是这里面有没有鼠标双击的事件
- 我是想实现这样的功能,鼠标双击控件,让控件放大和缩小,最关键的一步就是鼠标双击事件的响应。所以我想到了下面这个办法:
2. HMouseDown事件
- 使用 HMouseDown事件 来代替鼠标双击事件,实现思路就是,记录两次单击鼠标的事件间隔,如果这个间隔小于我设定的时间,比如500ms,那么我认为刚刚用户进行了一次鼠标双击的操作。
//解决的方法
DateTime first;
int count = 0;
private void hWindowControl1_HMouseDown(object sender, HalconDotNet.HMouseEventArgs e)
{
TimeSpan ts;
if (count == 0)
{
count = 1;
first = DateTime.Now;
}
else if(count == 1)
{
count = 0;
ts = DateTime.Now - first;
if(ts.Milliseconds < 500)
{
MessageBox.Show("两次单击鼠标的时间间隔小于500ms");
}
}
}
这样的话,我双击鼠标的时候就有了下面这样的响应。
- 我的这种方法比较笨,应该还有更好的方法,但是项目紧急,先这样用着,后面再来研究吧。