Compartilhar via


Objeto My.Forms

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

Observações

O My.Forms objeto fornece uma instância de cada formulário no projeto atual. O nome da propriedade é o mesmo que o nome do formulário que a propriedade acessa.

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

O My.Forms objeto 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 OpenForms propriedade para obter uma coleção de todos os formulários abertos do aplicativo.

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

Propriedades

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

Observação

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

O My.Forms objeto fornece acesso à instância do formulário principal do aplicativo que foi criado na inicialização. Para todos os outros formulários, o My.Forms objeto cria uma nova instância do formulário quando é 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 Close método do formulário e atribui Nothing ao valor armazenado. Se você atribuir qualquer valor diferente da Nothing propriedade, o setter gerará uma exceção ArgumentException .

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

Observação

Normalmente, o operador ou o IsIsNot operador precisa ler o valor da propriedade para executar a comparação. No entanto, se a propriedade armazenar no momento Nothing, a propriedade criará uma nova instância do formulário e retornará essa instância. No entanto, o compilador do Visual Basic trata as propriedades do objeto de My.Forms forma diferente e permite que o operador ou IsNot o Is operador verifique o status da propriedade sem alterar seu 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, seu projeto deve ter um formulário chamado 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 de console Não
Biblioteca de Controle do Windows Não
Biblioteca de Controles da Web Não
Serviço do Windows Não
Site da web Não

Consulte também