A couple ways to go about this. My preferred method is using the MainMenu style application and put a DataSubscriber on the MainMenu form. In the DataChanged event handler, show the appropriate form. This is an example from a project I did where the PLC had an integer to set for which form to show:
Private Sub DataSubscriber1_DataChanged(sender As Object, e As Drivers.Common.PlcComEventArgs) Handles ScreenSelectDataSubscriber.DataChanged
Try
If e.ErrorId = 0 AndAlso e.Values.Count > 0 Then
Select Case e.Values(0)
Case 1 : RecipeQueButton.PerformClick()
Case 2 : MixTableButton.PerformClick()
Case 3 : HopperInitializeButton.PerformClick()
Case 4 : BarcodeButton.PerformClick()
Case 5 : WeighUpButton.PerformClick()
Case 10 : OptionalMaterialButton.PerformClick()
End Select
End If
Catch ex As Exception
End Try
End Sub
You can do something similar in the form you want to hide or show, but you will not be able to pause the updating when the form is hidden which means you will have excess communications to update a hidden form.