Oggetto My.Forms

Offre proprietà per l'accesso a un'istanza di ogni Windows Form dichiarato nel progetto corrente.

Osservazioni:

L'oggetto My.Forms fornisce un'istanza di ogni modulo nel progetto corrente. Il nome della proprietà è uguale al nome del modulo a cui la proprietà accede.

È possibile accedere ai moduli forniti dall'oggetto My.Forms utilizzando il nome del modulo, senza qualifica. Poiché il nome della proprietà corrisponde al nome del tipo del modulo, è possibile accedere a un modulo come se avesse un'istanza predefinita. Ad esempio, My.Forms.Form1.Show equivale a Form1.Show.

L'oggetto My.Forms espone solo i moduli associati al progetto corrente. Non fornisce l'accesso ai moduli dichiarati nelle DLL a cui si fa riferimento. Per accedere a un modulo fornito da una DLL, è necessario usare il nome completo del modulo, scritto come DllName.FormName.

È possibile utilizzare la proprietà OpenForms per ottenere una raccolta di tutti i moduli aperti dell'applicazione.

L'oggetto e le relative proprietà sono disponibili solo per le applicazioni Windows.

Proprietà

Ogni proprietà dell'oggetto My.Forms fornisce l'accesso a un'istanza di un modulo nel progetto corrente. Il nome della proprietà corrisponde al nome del modulo a cui accede la proprietà e il tipo di proprietà corrisponde al tipo del modulo.

Nota

Se si verifica un conflitto di nomi, il nome della proprietà per accedere a un modulo è RootNamespace_Namespace_FormName. Si considerino ad esempio due moduli denominati Form1.Se uno di questi moduli si trova nello spazio dei nomi radice WindowsApplication1 e nello spazio dei nomi Namespace1, si accede a tale modulo tramite My.Forms.WindowsApplication1_Namespace1_Form1.

L'oggetto My.Forms fornisce l'accesso all'istanza del modulo principale dell'applicazione creato all'avvio. Per tutti gli altri moduli, l'oggetto My.Forms crea una nuova istanza del modulo quando vi si accede e lo archivia. I tentativi successivi di accedere a tale proprietà restituiscono tale istanza del modulo.

È possibile eliminare un modulo assegnando Nothing alla proprietà per tale modulo. Il setter della proprietà chiama il metodo Close del modulo e quindi assegna Nothing al valore archiviato. Se si assegna un valore diverso dalla proprietà Nothing, il setter genera un'eccezione ArgumentException.

È possibile verificare se una proprietà dell'oggetto My.Forms archivia un'istanza del modulo utilizzando l'operatore Is o IsNot. È possibile utilizzare tali operatori per verificare se il valore della proprietà è Nothing.

Nota

In genere, l'operatore Is o IsNot deve leggere il valore della proprietà per eseguire il confronto. Tuttavia, se la proprietà attualmente archivia Nothing, la proprietà crea una nuova istanza del modulo e quindi restituisce tale istanza. Tuttavia, il compilatore Visual Basic gestisce in modo diverso le proprietà dell'oggetto My.Forms e consente all'operatore Is o IsNot di controllare lo stato della proprietà senza modificarne il valore.

Esempio

In questo esempio viene modificato il titolo del modulo predefinito SidebarMenu.

Sub ShowSidebarMenu(ByVal newTitle As String)
    If My.Forms.SidebarMenu IsNot Nothing Then
        My.Forms.SidebarMenu.Text = newTitle
    End If
End Sub

Per il funzionamento di questo esempio, il progetto deve avere un modulo denominato SidebarMenu.

Questo codice funzionerà solo in un progetto di applicazione Windows.

Requisiti

Disponibilità per tipo di progetto

Tipo di progetto Disponibile
Applicazione Windows
Libreria di classi No
Applicazione console No
Libreria di controlli Windows No
Libreria di controlli Web No
Servizio Windows No
Sito Web No

Vedi anche