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 |