为什么我的用户界面在使用事件结构的时候会锁住呢?



主要软件:
主要软件版本: 6.1
主要软件修正版本: N/A
次要软件: N/A

问题:
为什么我的用户界面在使用事件结构的时候会锁住呢?

解答:
这个是在第一次用事件结构时经常会遇到的问题。事件驱动用户界面是为一些精细的应用程序设计提供的方法。然而,这需要一个学习的过程。随着LabVIEW版本的不同,事件建构也会有所不同。LabVIEW 6.1中的事件是静态注册的。LabVIEW 7.0之后的版本除了静态注册之外还可以动态注册事件。静态注册一个对象,意味着当一个VI郑在运行时,它将会注册前面板上所有由事件结构处理的对象。当前面板上某一个被注册过的对象上有一个事件被调用时,默认情况下前面板会被锁住知道这个事件被事件结构处理。

如果当一个事件在一个已经注册过的前面板对象上发生时,而且这时没有相应的事件结构能够处理这个事件时,前面板上所有对象会被锁住直到有一个事件结构能够处理这个事件,或者直到VI中止运行。一个常见的结构比如在一个事件结构中有另外一个事件结构将会导致这种现象的发生。第一个事件结构会锁住所有UI对象,使它们不能被里面的事件结构来访问。

正如上面所说的,前面板的锁定在事件结构中是默认的,但是这个特点可以在每一个事件结构中关闭。右键点击事件结构并且选择Edit Event Handled by This Case...。取消对话框底下 "Lock front panel until the event case for this event completes" 复选框。如下所示:



作为相对于静态注册事件的另外一种选择,动态事件允许您按照您的需要对一些时间进行注册和取消注册。关于动态事件,请参考下面的连接 "Advanced Event Handling with LabVIEW 7 Express"

相关链接:
Developer Zone Tutorial: Event-Driven Programming in LabVIEW
Developer Zone Tutorial: Advanced Event Handling with LabVIEW 7 Express
KnowledgeBase 2TUCG6HM: Why Is "Lock Panel Until Handler Completes" Grayed Out For Certain Cases In An Event Structure?

附件:


nolock.JPG


报告日期: 07/13/2006
最近更新: 01/18/2012
文档编号: 2LRE8H2G