My.Forms-objekt
Innehåller egenskaper för åtkomst till en instans av varje Windows-formulär som deklareras i det aktuella projektet.
Kommentarer
Objektet My.Forms
innehåller en instans av varje formulär i det aktuella projektet. Namnet på egenskapen är samma som namnet på formuläret som egenskapen kommer åt.
Du kan komma åt formulären My.Forms
som tillhandahålls av objektet med hjälp av formulärets namn, utan kvalificering. Eftersom egenskapsnamnet är samma som formulärets typnamn kan du komma åt ett formulär som om det hade en standardinstans. My.Forms.Form1.Show
motsvarar till exempel Form1.Show
.
Objektet My.Forms
exponerar endast de formulär som är associerade med det aktuella projektet. Den ger inte åtkomst till formulär som deklarerats i refererade DLL:er. För att få åtkomst till ett formulär som en DLL tillhandahåller måste du använda det kvalificerade namnet på formuläret, skrivet som DllName.FormName.
Du kan använda OpenForms egenskapen för att hämta en samling av alla programmets öppna formulär.
Objektet och dess egenskaper är endast tillgängliga för Windows-program.
Egenskaper
Varje egenskap för My.Forms
objektet ger åtkomst till en instans av ett formulär i det aktuella projektet. Namnet på egenskapen är samma som namnet på formuläret som egenskapen kommer åt, och egenskapstypen är samma som formulärets typ.
Kommentar
Om det uppstår en namnkollision är egenskapsnamnet för att komma åt ett formulär RootNamespace_Namespace_FormName. Du kan till exempel överväga två formulär med namnet Form1.
Om ett av dessa formulär finns i rotnamnområdet WindowsApplication1
och i namnområdet Namespace1
skulle du komma åt formuläret via My.Forms.WindowsApplication1_Namespace1_Form1
.
Objektet My.Forms
ger åtkomst till instansen av programmets huvudformulär som skapades vid start. För alla andra formulär My.Forms
skapar objektet en ny instans av formuläret när det används och lagrar det. Efterföljande försök att komma åt den egenskapen returnerar den instansen av formuläret.
Du kan ta bort ett formulär genom att Nothing
tilldela egenskapen för formuläret. Egenskapsuppsättningen Close anropar formulärets metod och tilldelar Nothing
sedan till det lagrade värdet. Om du tilldelar något annat värde än Nothing
egenskapen utlöser settern ett ArgumentException undantag.
Du kan testa om en egenskap för My.Forms
objektet lagrar en instans av formuläret med hjälp av operatorn Is
eller IsNot
. Du kan använda dessa operatorer för att kontrollera om värdet för egenskapen är Nothing
.
Kommentar
Vanligtvis måste operatorn Is
eller IsNot
läsa värdet för egenskapen för att utföra jämförelsen. Men om egenskapen för närvarande lagrar Nothing
skapar egenskapen en ny instans av formuläret och returnerar sedan den instansen. Visual Basic-kompilatorn behandlar dock objektets egenskaper My.Forms
på olika sätt och låter Is
operatorn eller IsNot
kontrollera egenskapens status utan att ändra dess värde.
Exempel
I det här exemplet ändras namnet på standardformuläret SidebarMenu
.
Sub ShowSidebarMenu(ByVal newTitle As String)
If My.Forms.SidebarMenu IsNot Nothing Then
My.Forms.SidebarMenu.Text = newTitle
End If
End Sub
För att det här exemplet ska fungera måste projektet ha ett formulär med namnet SidebarMenu
.
Den här koden fungerar bara i ett Windows-programprojekt.
Behov
Tillgänglighet efter projekttyp
Projekttyp | Tillgängligt |
---|---|
Windows-program | Ja |
Klassbibliotek | Nej |
Konsolprogram | Nej |
Windows-kontrollbibliotek | Nej |
Webbkontrollbibliotek | Nej |
Windows-tjänsten | Nej |
Webbplats | Nej |