VB .NET - Criando um formulário baseado em outro formulário
Se você acompanhou a minha série de artigos - VB.NET 2005 - Criando uma aplicação completa : Locadora de Filmes I notou que no segundo artigo da série foram criados formulários com base em formulários modelos previamente já criados. Estou voltando ao assunto devido a algumas dúvidas e consultas sobre o mesmo.
A herança visual de formulários já existia na
versão 1.1 da plataforma .NET mas na versão 2.0 ela sofreu algumas melhorias.
Vamos supor que você criou um formulário e planeja usá-lo como um modelo para criar outros formulários de forma que eles estendam as funcionalidades do formulário base. Como obter este resultado ?
Aplicando aqui os conceitos de herança podemos dizer que basta criar um relacionamento entre o formulário original (a classe base) e o formulário com o qual deseja estender as funcionalidades do formulário base. Você pode fazer isto de duas formas básicas sendo que a mais simples é deixar o Visual Basic .NET (Visual Studio) fazer o serviço para você.
Vamos a um exemplo:
- Criando o formulário modelo (base)
Abra o Visual Basic 2005 Express Editon e crie um projeto Windows Forms.
A seguir inclua um no novo formulário Windows no projeto , clicando com o botão direito do mouse sobre o nome do projeto e selecionando a opção Add->New Item e selecionando a opção Windows Forms na janela Add New Item. Informe o nome Modelo.vb , conforme figura abaixo.
A seguir vamos incluir os componentes que achamos que serão comuns aos formulários que serão criados a partir deste modelo. Para não complicar vou definir o formulário modelo contendo apenas um controle Label e um controle GroupBox conforme figura abaixo:
![]() |
Altere as seguintes propriedades do formulário modelo na janela de
propriedades:
Altere as seguintes propriedades do controle Label1 :
Defina a propriedade Anchor do controle GroupBox1 como sendo igual a : Top, Bottom, Left, Right |
Nota: Se você não alterar a propriedade Modifiers para Protected não vai conseguir alterar os controles no formulário filho.
![]() Public: Acesso sem restrições; Private: Nenhum acesso externo e também não pode ser herdado; Friend: Somente acesso em um mesmo local, Ex: Class library, Windows Aplication... Protected: Sem acesso externo e pode ser herdado. |
Criando os formulários a partir do Modelo
Vou mostrar agora como você pode criar formulários a partir do formulário modelo acima. Inclua um novo formulário Windows com o nome de Clientes.vb da seguinte forma:
Ao término do processo você terá o formulário clientes.vb com a mesma identidade visual do seu formulário Modelo.vb. Vamos dar uma espiada no código do formulário... mas antes...
![]() |
Na janela
Solution Explorer clique no ícone Show All Files para que todos
os arquivos que compõem a solução sejam exibidos.
Clique no sinal de mais ao lado do formulário clientes.vb e clique duas vezes sobre o item Clientes.Designer.vb Isto irá exibir o código do formulário criado pelo VB2005.
|
Vejamos agora o código gerado:
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ Partial Class clientes Inherits videoLocadora.Modelo 'Form overrides dispose to clean up the component list. |
Note que o código em negrito que eu fiz questão de destacar indica que o formulário clientes herda (inherits) do formulário Modelo. (O nome videolocadora refere-se apenas ao nome do projeto que eu usei.)
![]() Dim frm As New Form2 frm.Show() O Visual Basic 2005 agora oferece suporte a instâncias padrão, permitindo que você use a seguinte sintaxe(Já conhecida dos programadores VB6) : Form2.Show() Para ficar bem documentado é mais prudente usar a instância a partir da coleção My.Forms, assim : My.Forms.Form2.Show() |
Todos os formulários incluídos em um projeto usam herança e por padrão novos formulários herdam de System.Windows.Forms.Form.
Se alterarmos manualmente a instrução inherits indicando o nome do formulário base pré-existente e a seguir reconstruindo o projeto e iremos obter o mesmo resultado que acima.
Este recurso pode lhe ajudar muito quando existirem muitos formulários com funcionalidades similares a serem criados.
Até o próximo artigo .NET
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
|
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências: