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.
Modificadores usados
no VB.NET 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.)
Nas versões
anteriores do VB.NET você tinha que criar uma instância do formulário para
usá-lo depois. Lembra ???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: