创建自定义事件
- 更新时间2025-08-27
- 阅读时长5分钟
可创建和命名自定义事件,即用户事件,用于传送自定义数据。用户事件允许一个应用程序的不同部分进行异步通信。用户界面事件要求用户直接与前面板对象交互,与用户界面事件不同,用户事件允许创建响应对象编程改动的应用程序。可以在同一事件结构中处理用户界面事件和通过编程产生的用户事件。
使用的对象
使用下列程序框图对象创建用户事件。
—创建用户事件
—注册事件
—事件结构
— 产生用户事件
— 取消注册事件
—销毁用户事件
—创建用户事件
—注册事件
—事件结构
— 产生用户事件
— 取消注册事件
—销毁用户事件操作步骤
创建下列程序框图,生成通过编程传递自定义数据的用户事件。

下面列出了上述程序框图的要点。
注: 如用户事件未注册,则“产生用户事件”函数将无效。如果用户事件已注册但没有事件结构等待该事件,那么LabVIEW将把该用户事件和数据放入队列,直到有事件结构来处理该事件。
说明和建议
- 用户事件不可静态注册。
- 通过单独的“注册事件”函数可多次注册同样的用户事件。在这种情况下,每当“产生用户事件”函数执行时,每个与事件注册引用句柄相关的队列将收到用户事件相关事件数据的副本。
- 作为一种通知事件,用户事件与用户界面事件或其他用户事件共享同样的事件结构分支。
- 如要模拟用户与前面板的交互,可创建与已有用户界面事件具有相同的名称和数据类型等事件数据项的用户事件。例如,使用具有两个名为OldVal和NewVal布尔字段的簇,可创建一个名为MyValChg的用户事件。这两个布尔型字段同时也是值改变用户界面事件与布尔型控件相连的事件数据项。该模拟的MyValChg用户事件以及真正的“布尔值改变”事件可置于同一个事件结构内。如果“创建用户事件”函数产生该用户事件或用户对该控件的值进行更改,那么事件结构将执行该事件分支。
范例
关于动态注册事件的范例,见labview\examples\Dialog and User Interface\Events\Events.lvproj。
关于使用用户事件的范例,见labview\examples\Dialog and User Interface\Events目录下的User Event Generation VI。