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 | Sì |
Libreria di classi | No |
Applicazione console | No |
Libreria di controlli Windows | No |
Libreria di controlli Web | No |
Servizio Windows | No |
Sito Web | No |