Objeto My.Forms

Fornece propriedades para acessar uma instância de cada Formulário do Windows declarado no projeto atual.

Comentários

O objeto My.Forms fornece uma instância de cada formulário no projeto atual. O nome da propriedade é igual ao nome do formulário acessado pela propriedade.

Você pode acessar os formulários fornecidos pelo objeto My.Forms usando o nome do formulário, sem qualificação. Como o nome da propriedade é igual ao nome do tipo do formulário, isso permite acessar um formulário como se ele tivesse uma instância padrão. Por exemplo, My.Forms.Form1.Show é equivalente a Form1.Show.

O objeto My.Forms expõe apenas os formulários associados ao projeto atual. Ele não fornece acesso aos formulários declarados em DLLs referenciadas. Para acessar um formulário fornecido por uma DLL, você deve usar o nome qualificado do formulário, escrito como DllName.FormName.

Você pode usar a propriedade OpenForms para obter uma coleção de todos os formulários abertos do aplicativo.

O objeto e as respectivas propriedades estão disponíveis apenas para aplicativos do Windows.

Propriedades

Cada propriedade do objeto My.Forms fornece acesso a uma instância de um formulário no projeto atual. O nome da propriedade é igual ao nome do formulário que a propriedade acessa e o tipo de propriedade é igual ao tipo do formulário.

Observação

Se houver uma colisão de nomes, o nome da propriedade para acessar um formulário é RootNamespace_Namespace_FormName. Por exemplo, considere dois formulários denominados Form1.Se um desses formulários estiver no namespace raiz WindowsApplication1 e no namespace Namespace1, você acessaria esse formulário por meio de My.Forms.WindowsApplication1_Namespace1_Form1.

O objeto My.Forms fornece acesso à instância do formulário principal do aplicativo que foi criado na inicialização. Para todos os outros formulários, o objeto My.Forms cria uma nova instância do formulário quando ele é acessado e o armazena. Tentativas subsequentes de acessar essa propriedade retornam essa instância do formulário.

Você pode descartar um formulário atribuindo Nothing à propriedade para esse formulário. O setter de propriedade chama o método Close do formulário e, em seguida, atribui Nothing ao valor armazenado. Se você atribuir qualquer valor diferente de Nothing à propriedade, o setter gerará uma exceção ArgumentException.

Você pode testar se uma propriedade do objeto My.Forms armazena uma instância do formulário usando o operador Is ou IsNot. Você pode usar esses operadores para verificar se o valor da propriedade é Nothing.

Observação

Normalmente, o operador Is ou IsNot precisa ler o valor da propriedade para executar a comparação. No entanto, se a propriedade atualmente armazenar Nothing, a propriedade criará uma instância do formulário e retornará essa instância. No entanto, o compilador do Visual Basic trata as propriedades do objeto My.Forms de maneira diferente e permite que o operador Is ou IsNot verifique o status da propriedade sem alterar o valor.

Exemplo

Este exemplo altera o título do formulário padrão SidebarMenu.

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

Para que este exemplo funcione, o projeto deve ter um formulário nomeado SidebarMenu.

Esse código funcionará apenas em um projeto de Aplicativo do Windows.

Requisitos

Disponibilidade por tipo de projeto

Tipo de projeto Disponível
Aplicativo do Windows Sim
Biblioteca de Classes Não
Aplicativo do Console Não
Biblioteca de Controle do Windows Não
Biblioteca de Controles da Web Não
Serviço do Windows Não
Site Não

Confira também