Chiudere tutte le finestre aperte da un applicativo
Chiudere tutte le finestre, generate da un programma, chiudendo il Form principale
Se, chiudendo il Form principale, si intende chiudere anche tutte le finestre secondarie eventualmente generate dall'applicativo, si può utilizzare l'istruzione:
Public Sub Form_Close() ' Assegna alla Proprietà ".MainWindow" della Classe Application la finestra principale dell'applicativo: Application.MainWindow = Me End
che fa diventare la finestra corrente quella principale: quando viene chiusa la finestra principale, vengono chiuse tutte le altre finestre e l'applicazione.
E' possibile usare anche la Classe Windows, che ritorna una collezione di tutte le finestre create dall'applicativo principale:
Public Sub Form_Open() Dim w As Window With w = New Window .Move(0, 0, 100, 100) .Show End With With w = New Window .Move(200, 100, 100, 100) .Show End With With w = New Window .Move(300, 200, 100, 100) .Show End With Me.Center End Public Sub Form_Close() For Each w As Window In Windows w.Close Next End
Chiudere tutte le finestre, generate da un programma, chiudendo una finestra secondaria
Se si intende chiudere tutte le finestre, generate da un programma, chiudendo una sua finestra secondaria, si dovrà sollevare l'Evento "_Activate()" di tale finestra secondaria.
Private Form1 As Form Private Form2 As Form Public Sub Form_Open() With Form1 = New Form As "Form1" .Move(100, 100, 300, 300) .Show End With With Form2 = New Form As "Form2" .Move(500, 300, 300, 300) .Show End With End Public Sub Form1_Activate() Application.MainWindow = Form1 End Public Sub Form2_Activate() Application.MainWindow = Form2 End
Se la creazione dei Form (o delle finestre) secondari è avvenuta dall'IDE di Gambas, allora nella Classe del Form secondario, alla chiusura del quale si vuole far chiudere anche le altre finestre generate, si assegnerà la parola-chiave "ME":
Public Sub Form_Activate() Application.MainWindow = Me End