LabVIEW 无法捕捉由程序修改控件值产生的“值改变”事件
LabVIEW 无法捕捉由程序修改控件值产生的“值改变”事件
在使用事件结构的时候,在事件分支中响应前面板中的一个显示控件的值改变事件,该显示控件在程序的其他部分动态改变其值。VI运行的时候,可以观察到显示控件值已经被改变了,但是对应事件分支却没有执行。为什么事件结构里没有响应显示控件的值改变事件呢?
解答:
事件结构仅仅注册由直接的前面板用户输入产生的事件,而在问题中,显示控件的值非用户输入而是程序更改的,所以这样的“值改变”LabVIEW不会去捕捉,因此也无法响应对应的事件分支。而且,即使你在程序中利用VI服务器,全局变量,局部变量等来改变VI和前面板控件,“值改变”事件都不会被LabVIEW捕捉。
有一个例外,输入控件和显示控件的事件可以通过调用值(信号)的属性节点产生。该属性是只写的,每次写入该属性节点就像是用户在前面板操作产生值的改变。要注意的是,在循环中使用该属性时,如果在循环迭代每一次都写入该属性,不管控件实际是否有值变化,程序将会产生一组的值改变事件。
参考下图的图片以及附件中的VI。
上例中,事件结构用来捕捉要连接到输入控件Numeric的Event Source 显示控件的“值改变”事件。
在事件结构的Numeric“值改变”分支中将Numeric的新值赋值给Event Source ,而不是在事件结构外直接将Numeric连线到Event Source,这样就可以避免每次Event Source 的值改变产生的“值改变”事件。一旦Numeric值改变了,对应的事件分支就会响应,通过 Event Source 的值(信号)属性节点便可产生 Event Source 的“值改变”事件,他对应的事件分支也执行了,如下图所示。
请参考附件的例程。
更详细的内容,参加如下附件的介绍。
LabVIEW、LabVIEW开发、LabVIEW编程、LabVIEW程序
上文中提到的例子和资料,均在word中的附件里,可点击下载。进一步了解,可联系们LabVIEW 无法捕捉由程序修改控件值产生的“值改变”事件 - 北京瀚文网星科技有限公司 (bjcyck.com)
相关文章
- ios-tableView的touchesBegan事件和didSelectRowAtIndexPath方法
- 简述android触屏事件的处理_移动端touch事件有哪些
- PKS事件记录详查:Firstout功能块
- AWS正尝试使用ChatGPT;BuzzFeed也因使用ChatGPT致股价上涨3倍;理想吉利纷纷重仓智能化丨每日大事件
- 对滚动条添加JS事件详解编程语言
- Oracle 等待事件 Enqueues:DF,Datafile 官方解释,作用,如何使用及优化方法
- Oracle 等待事件 Enqueues:PF,PasswordFile 官方解释,作用,如何使用及优化方法
- 星巴克挖矿事件分析:黑客是如何黑掉WiFi并将挖矿代码注入到HTML页面的?
- Redis集群做大事件的利器(redis 集群6)
- 天翼,有毒?“校园客户端挂马事件”雷锋网独家解析
- WML学习之六事件
- IE之动态添加DOM节点触发window.resize事件
- Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法