Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Fornisce 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à corrisponde al nome del modulo a cui accede la proprietà.
È 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, ciò consente di 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 OpenForms proprietà 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 fornisce l'accesso a un'istanza My.Forms 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.
Annotazioni
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 una di queste forme si trova nello spazio dei nomi WindowsApplication1 radice 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 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 Close metodo del form e quindi assegna Nothing al valore archiviato. Se si assegna un valore diverso Nothing dalla proprietà , il setter genera un'eccezione ArgumentException .
È possibile verificare se una proprietà dell'oggetto archivia un'istanza My.Forms del modulo utilizzando l'operatore Is o IsNot . È possibile utilizzare tali operatori per verificare se il valore della proprietà è Nothing.
Annotazioni
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 le proprietà dell'oggetto My.Forms in modo diverso 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 progetto | Disponibile |
|---|---|
| Applicazione Windows | Sì |
| Biblioteca di classi | NO |
| Applicazione console | NO |
| Libreria di controlli Windows | NO |
| Libreria di controlli Web | NO |
| Servizio Windows | NO |
| Sito web | NO |