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 Namespace1skulle 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 Nothingskapar 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

Se även