Um dos principais benefícios da chegada da plataforma .Net em relação às plataformas de desenvolvimentos antiga da Microsoft foi a Orientação a Objetos, com isso muitos ganhos referente a produtividade através do reaproveitamento de código

Um dos principais benefícios da chegada da plataforma .Net em relação às plataformas de desenvolvimentos antiga da Microsoft foi a Orientação a Objetos, com isso muitos ganhos referente a produtividade através do reaproveitamento de código ficaram mais simples além da qualidade do software que será muito maior. Hoje trabalhar com .Net sem utilizar os recursos de orientação a objetos é um erro gritante!

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.

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.


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:



No exemplo vamos definir:



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.