Originariamente inviato da ladyBlu
quindi mi stai dicendo che non esiste un sistema come quello che ho postato e che usavo in vb6, giusto?
Per fortuna (purtroppo, qualcuno dirà) VB.NET non considera i form allo stesso modo di VB6.

Nell'ambiente precedente, ciascun form era allo stesso tempo "classe" e "istanza", o semplicemente un form con un nome attraverso il quale poteva essere manipolato, aperto, chiuso, distrutto, spostato e così via...

Nella programmazione con .NET, ciascun form è ora una classe vera e propria e come tale definisce un modello comportamentale, ereditando caratteristiche dalla classe base System.Windows.Forms.Form, che può essere utilizzato da tutte le istanze del form stesso le quali devono essere create.

E' possibile, ad esempio, creare più copie in memoria dello stesso form, possibilità che in VB6 non era assolutamente attuabile se non con meccanismi non integrati nell'ambiente di sviluppo.

Concludendo, in VB.NET tu disponi sempre di una classe che definisce il comportamento del form e della possibilità di crearne un'istanza, assegnando il riferimento ad una variabile; quando l'oggetto è creato, attraverso il riferimento puoi raggiungerlo e manipolare le sue caratteristiche, comuni a tutte le istanze della stessa classe di form, ma ciascuna istanza avrà il proprio valore in un determinato momento.

Nel tuo caso, puoi dotare il form principale di una variabile per ogni form dell'applicazione e memorizzare al suo interno, di volta in volta, il riferimento al form creato per chiuderlo successivamente; in alternativa, suppongo che vi sia nella classe Application una proprietà che contenga i form istanziati (dovrei controllare) affinchè sia possibile scandirne l'elenco e intimarne a tutte la chiusura, cancellando opzionalmente il riferimento.

Faccio ulteriori controlli e magari ti saprò dire in seguito.

Ciao!