 VB .NET - Criando um formulário baseado em outro formulário
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 Facebook
  
 Compartilhe no Twitter
 
Compartilhe no Twitter
Referências: