Come più volte suggerito sul forum come risposta alla domanda "Come faccio ad accedere ad un membro di una form da qualsiasi altra parte" cerco di implementare il design pattern "Singleton" per una WindowsForm.
1) Creare una Sub Main in un modulo di modo che la creazione della form avvenga dal modulo :
Sub Main()
Application.Run(New Form1)
End Sub
2) Aggiungere alla form un membro condiviso :
Private Shared instance As Form1
3) Aggiungere una function alla form che sia in grado di ritornare l'istanza della form se già stata creata :
Public Shared Function InstanceObject() As Form1
If (instance Is Nothing) Then
instance = New Form1
End If
Return instance
End Function
4) Nel costruttore della form dopo la InitializeComponent salvare l'istanza sul membro condiviso :
instance = Me
Fatto questo, da un'altra form o comunque da qualsiasi altra parte del codice per accedere ai membri/metodi/proprietà d'istanza della form è sufficiente scrivere qualcosa di simile :
Form1.InstanceObject.Label1.Visible = False