让代码更简单

当前位置:代码狗 > 开发教程 > 工业视觉教程 > 正文

使用C#获取VisionPro控件cogDisplayStatusBarV21的值

重要:本文最后更新于2019-12-06 08:30:51,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

VisionPro给我们提供了cogDisplayStatusBarV21控件来显示display控件中的数据,但这个cogDisplayStatusBarV21控件却没有提供接口让我们可以取上面的数据,因为它的数据源于display控件,所以要想取得cogDisplayStatusBarV21控件值,只需取display控件值即可,下面是测试效果。

使用C#获取VisionPro控件cogDisplayStatusBarV21的值

使用C#获取VisionPro控件cogDisplayStatusBarV21的值

这个问题是群员提出来的,虽然我搞不懂为什么要取这些数据,但是作为付费阅读用户,就是有这个权利提出问题,我只能尽可能解答,幸不辱命,找到了解决方案!

先解释下这三个数据分别是什么,第一个是鼠标当前位置在display控件中的坐标,这个坐标可以根据你的visionPro坐标空间自由转换。第二个数据是当前图像在display控件中的缩放大小。第三个数据是鼠标当前所指位置的像素灰度值。

既然这三个数据两个都涉及到鼠标移动事件,另一个涉及到控件改变事件,那么理所应当的要实现display控件的MouseMoveChanged事件,具体代码如下:

要查看更多文章内容,请您先登录/注册

这里有个问题要说明一下,由于在鼠标移动事件中我们获取了display控件的图像,因此在该控件还未显示图像时,就会出现异常错误,为了规避这个问题,大家可以使用try语句包裹,将异常抛出,或者像我上面的写法一样,改变MouseMove事件的注册位置。如果你使用visual studio的控件属性事件中生成的事件,那么vs会在启动窗口时为你注册MouseMove事件,这个时候display控件无图像,就会出错,我手动注册了该事件,确保了display控件有图再执行。

感觉很棒!可以赞赏支持我哟~

赞(1) 打赏

评论 2

  1. #1

    实际上为什么没有触发事件呢?
    //鼠标移动事件是我自定义的,不是系统生成的
    private void RecordDisplay1_MouseMove(object sender, MouseEventArgs e)

    AsmDebuger5个月前 (07-17)回复
    • 本站所有代码都是测试通过的。

      代码狗5个月前 (07-18)回复
×

请作者吃根烤肠!

支付宝