LabVIEW可产生多种不同的事件。使用事件注册指定事件结构要处理的事件。注册某个事件后,LabVIEW会在该事件发生时通知用户。在LabVIEW中,可静态或动态注册事件。静态注册时,LabVIEW将事件排入队列,在事件发生时通知用户。例如,静态注册前面板控件上的鼠标移动事件,每次用户将鼠标移至控件时,LabVIEW都会将该事件排入队列。动态注册时,只有当事件在指定的情境下发生时,LabVIEW才会将事件列入队列并通知用户。例如,用户只是需要监控用户按下某一个键时的鼠标移动事件。也可使用动态事件注册改变生成事件的VI或控件,在子VI中处理事件。

静态事件注册

VI中包含事件结构时,LabVIEW自动进行静态事件注册。可指定事件结构的各个分支处理不同的前面板控件用户界面事件。使用编辑事件对话框可配置事件结构以处理静态注册的事件

注: 不可静态配置一个事件结构来处理前面板上不同VI的事件。

关于静态事件注册的范例,请参考examples\Structures\Event Structure\Event Structure.lvproj

动态事件注册

动态事件注册可用来控制LabVIEW何时生成事件、生成何种事件,以及LabVIEW在何处处理这类事件。动态事件注册有下列优点:

  • 通过在程序的不同部分注册事件,可控制LabVIEW何时生成事件。监控特定条件下的某些事件,例如,用户按下绘图按钮后鼠标移动至波形图的事件。静态注册时,鼠标移动事件始终会发生。动态注册时,可在用户按下绘图按钮后注册鼠标移动事件。
  • 运行时可改变生成事件的VI或控件。要改变LabVIEW生成事件的对象,运行时修改注册信息即可。
  • LabVIEW可生成没有直接前面板交互的事件。动态事件注册时,在程序框图上通过编程更新控件的值也会生成一个事件。静态事件注册要求用户交互,LabVIEW才能生成事件。
  • 不必在生成事件的VI中处理事件,可在子VI中处理事件,使程序更模块化。例如,在DAQ应用程序中,可创建三个子VI:一个处理所有用户界面事件,一个处理所有用户事件,另一个处理所有DAQ事件。