Desenvolvimento - Visual Basic .NET
Herança Visual de formulários no Visual Studio 2003
O conceito de herança é muito simples, temos um "filho" que "herda" as "propriedades e eventos" do seu "pai", e os "netos" que "herdam" do "filho", e assim segue...
por Alexandre TarifaO conceito de herança é muito simples, temos um "filho" que "herda" as "propriedades e eventos" do seu "pai", e os "netos" que "herdam" do "filho", e assim segue.
Como tirar proveito disso?
Podemos criar um formulário com todas as propriedades específicas e funcionalidades também, definir seu encapsulamento (permissão de acesso) e outros formulários filhos terem como base tudo que já existe no form pai.
Caso algum deste form filho necessite de que um form o utilize como base, ele recebe o papel de "pai" e tudo segue como o explicado.
Complicado o entendimento? Vamos ver na prática:
Abra o Visual Studio 2003, clique em File > New > Project. Uma janela de novo projeto é criada. Selecione o tipo de projeto Visual Basic ou C#, Template Windows Forms e name Herança (imagem 1).
Imagem 1 - Criação do projeto
No Solution Explorer delete o formulário form1, clicando com o botão direito do mouse sobre o form1 e delete. Confirme a operação. Crie um novo formulário, no Solution Explorer clique com o botão direito do mouse sobre o projeto> Add> Add New Item. Selecione o Template Windows Forms e o nome frmPai. Um novo formulário é criado, o papel deste formulário será de ser o pai de todos os próximos que serão criados.
Mude algumas propriedades do frmPai, selecione o frmPai e clique no botão F4 do teclado, altere conforme a tabela 1.
Propriedade | Valor | Descrição |
BackColor | 255; 255; 192 | Cor do fundo do formulário |
Font Name | Verdana | |
FormBorderStyle | FixedSingle | O formulário fica protegido de mudança de tamanho. |
MaximizeBox | false | Tira a opção de maximizar. |
MinimizeBox | false | Tira a opção de minimizar. |
StartPosition | CenterScreen | Centraliza o form na tela ao executar. |
Text | Título do formulário |
Tabela 1 - Propriedades do formulário.
Adicione alguns controles, conforme imagem abaixo:
Imagem 2 - Leiaute do formulário.
Para executar o projeto, algum formulário deve ser definido como inicial. No Solution Explorer clique com o botão direito do mouse sobre o projeto> properties. Na combo Startup object selecione frmPai (imagem 3).
Imagem 3 - Formulário inicial.
Adicione também algumas funcionalidades ao formulário, de um duplo clique no botão Sair e adicione o seguinte código:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click "Fecha o formulário Me.Close() End Sub
Definido todas as propriedades e eventos devem definir a regra de acesso aos controles. Cada controle tem um tratamento separado, ou seja, podemos dar a opção de "travar" ou "destravar" um controle para que os forms que herdarem o frmPai possa alterar o que foi definido.
A propriedade responsável pela visibilidade é a Modifiers, todos os controles possuem essa propriedade. Essa propriedade recebe um enum com as opções:
Valor | Descrição |
Public | Acesso completo ao form herdado. |
Protected | Um membro Protected só pode ser acessado por classes derivadas ou pelos métodos da classe. |
Friend | Torna um membro da classe visível por todo o projeto , mas não a um controlador de uma instância do objeto. |
Private | Acesso restrito ao form pai. |
No exemplo vamos definir:
Controle | Modifiers |
Botão mensagem | Public |
textbox | Public |
Todas as propriedades do formulário são publicas quando herdadas.
Adicione um novo formulário ao projeto, porém um formulário herdado, no Solution Explorer clique com o botão direito do mouse sobre o projeto> Add> Inherited Form. Coloque o nome de frmFilho. Uma nova janela é aberta, a janela de seleção de formulário pai, neste caso selecione frmPai.
O formulário é criado exatamente igual a frmPai. Note que o botão sair está travado para alterações, já o botão mensagem está aberto para alterações e atribuição de eventos. O textbox também está disponível porque também deixamos a visibilidade pública e todas as propriedades do formulário podem ser alteradas.
Caso você deseje fazer alguma alteração geral, por exemplo mudar a cor de todos os forms, altere do form pai e re-complile a aplicação.
No frmPai, mude a propriedade backcolor para outra cor, recompile a aplicação (na janela Solution Explorer> botão direito do mouse no projeto> Rebuild). Pronto o form filho é alterado.
Conclusão
Podemos criar padrões em apenar um formulário, definindo propriedades como fonte, cor, logotipo da empresa, etc. Não canse de utilizar este recurso, em projetos podemos ter um form pai de cadastros, consultas, etc. onde sempre que for ser criado um formulário novo de cadastro, por exemplo, os botões padrões, propriedades de formulário, etc. já ficam padronizados e o seu sistema muito mais profissional. Use e abuse deste recurso.
Vale lembrar que os conceitos de orientação a objetos hoje são muito importantes, não existe lógica trabalhar com .Net, sem trabalhar com orientação a objetos, não utilize o Visual Studio como ferramenta de produtividade, e o código procedural. Utilize orientação a objetos sempre para ter projetos de qualidade.
Referências
http://www.linhadecodigo.com.br/artigos.asp?id_ac=585&pag=2
Se você tem interesse em aprender .net ou discutir .net entre no grupo de usuários Codificando.net - São Paulo.
Se tiver alguma dúvida, crítica, sugestão de artigo, fale comigo: alexandretarifa@gmail.com.
Abraços.
Alexandre Tarifa
Líder Codificando.net SP (www.codificando.net)
- Entity Framework 4: Repositório GenéricoVisual Basic .NET
- As edições 14 da Easy .net Magazine e 88 da .net Magazine já estão disponíveis.ADO.NET
- Postando no Twiiter com .NET e Migre.meC#
- Setup ApplicationsVisual Basic .NET
- Problemas na manipulação de arquivos do MS Excel com .NETVisual Basic .NET