選択したサブVIのフロントパネルをプログラム的に閉じるには?

更新しました Nov 16, 2023

使用製品

ソフトウェア

  • LabVIEW

問題

複数のVIを呼び出すメインVIがあり、特定のタイミングで開いているすべてのフロントパネルを閉じたいです。指定したVIを除き、開いているすべてのフロントパネルを閉じるにはどうすればよいですか?

解決策

VIサーバを使用すると、メモリ内にあるすべてのVIのリストを取得し、各VIへのリファレンスを開くことができます。VIへのリファレンスを開いたら、フロントパネルが開いているかどうかを確認し、開いている場合はフロントパネルを閉じることができます。下図は、この実装例を示しています。
 

下記の例では、配列制御器は、フロントパネルを閉じる処理から除外するVIのグループを指定しています。次に、VIはこれらの各VIへのリファレンスを開き、それらの名前をメモリ内の開いているすべてのVIのリストと比較します。VIがメモリで開いており除外リストにない場合、VIのフロントパネルが開いているかどうかを確認します。開いている場合はVIのフロントパネルを閉じて、VIへのすべてのリファレンスを閉じます。リファレンスが閉じられると、VIはメモリからアンロードされることに注意が必要です。
 

また、編集時にVIが完了した後に閉じるようにVIを構成することもできます。呼び出された際におけるサブVIのフロントパネル動作を設定するには、サブVIを右クリックしてサブVIノード設定...を選択します。