My.Forms 개체

현재 프로젝트에서 각 Windows Form의 인스턴스에 액세스하기 위한 속성을 제공합니다.

설명

My.Forms 개체는 현재 프로젝트에 있는 각 양식의 인스턴스를 제공합니다. 속성의 이름은 속성이 액세스하는 양식의 이름과 동일합니다.

한정 없이 양식 이름을 사용하여 My.Forms 개체에서 제공하는 양식에 액세스할 수 있습니다. 속성 이름은 양식의 형식 이름과 동일하므로 이를 통해 마치 기본 인스턴스가 있는 것처럼 양식에 액세스할 수 있습니다. 예를 들어 My.Forms.Form1.ShowForm1.Show와 같습니다.

My.Forms 개체는 현재 프로젝트와 관련된 양식만 노출합니다. 참조된 DLL에 선언된 양식에 대한 액세스를 제공하지 않습니다. DLL이 제공하는 양식에 액세스하려면 DllName.FormName으로 작성된 양식의 정규화된 이름을 사용해야 합니다.

OpenForms 속성을 사용하여 모든 애플리케이션의 열려 있는 양식 컬렉션을 가져올 수 있습니다.

개체와 해당 속성은 Windows 애플리케이션에서만 사용할 수 있습니다.

속성

My.Forms 개체의 각 속성은 현재 프로젝트의 양식 인스턴스에 대한 액세스를 제공합니다. 속성의 이름은 해당 속성이 액세스하는 양식의 이름과 동일하며, 속성 형식은 양식의 형식과 동일합니다.

참고 항목

이름 충돌이 있는 경우 양식에 액세스하기 위한 속성 이름은 RootNamespace_Namespace_FormName입니다. 예를 들어, Form1.이라는 두 가지 양식을 고려해 보세요. 이 양식 중 하나가 WindowsApplication1 루트 네임스페이스 및 Namespace1 네임스페이스에 있으면 My.Forms.WindowsApplication1_Namespace1_Form1을 통해 해당 양식에 액세스하게 됩니다.

My.Forms 개체는 시작 시 만들어진 애플리케이션 기본 양식의 인스턴스에 대한 액세스를 제공합니다. 다른 모든 양식의 경우, My.Forms 개체는 액세스될 때 양식의 새 인스턴스를 만들고 저장합니다. 이후에 해당 속성에 액세스하려고 하면 해당 양식 인스턴스가 반환됩니다.

해당 양식의 속성에 Nothing을 할당하여 양식을 삭제할 수 있습니다. 속성 집합 setter는 양식의 Close 메서드를 호출한 다음 저장된 값에 Nothing을 할당합니다. 속성에 Nothing 이외의 값을 할당하면 setter가 ArgumentException 예외를 throw합니다.

Is 또는 IsNot 연산자를 사용하여 My.Forms 개체의 속성이 양식의 인스턴스를 저장하는지 여부를 테스트할 수 있습니다. 해당 연산자를 사용하여 속성 값이 Nothing인지 확인할 수 있습니다.

참고 항목

일반적으로 Is 또는 IsNot 연산자는 비교를 수행하기 위해 속성 값을 읽어야 합니다. 그러나 속성이 현재 Nothing을 저장하는 경우 속성은 양식의 새 인스턴스를 만든 다음 해당 인스턴스를 반환합니다. 그러나 Visual Basic 컴파일러는 My.Forms 개체의 속성을 다르게 처리하고 Is 또는 IsNot 연산자가 해당 값을 변경하지 않고 속성 상태를 확인할 수 있도록 허용합니다.

예시

이 예에서는 기본 SidebarMenu 양식의 제목을 변경합니다.

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

이 예가 작동하려면 프로젝트에 SidebarMenu라는 양식이 있어야 합니다.

이 코드는 Windows 애플리케이션 프로젝트에서만 작동합니다.

요구 사항

프로젝트 형식에 따라 가용성

프로젝트 형식 사용 가능
Windows 애플리케이션
클래스 라이브러리 아니요
콘솔 애플리케이션 아니요
Windows 컨트롤 라이브러리 아니요
웹 컨트롤 라이브러리 아니요
Windows 서비스 아니요
웹 사이트 아니요

참고 항목