Por Alexandre Fernandes Chaud Tarifa
atarifa@deloitte.com
Alexandre Tarifa Analista de Sistema, atualmente trabalha com projetos para windows e web com .net. Formado em ciência da computação e cursando pós graduação em desenvolvimento de software.

Herança Visual de formulários no Visual Studio 2003

 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.

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.devaspnet.com.br/colunas2/coluna1703.aspx

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.

 

 

Dicas para quem está começando:
Veja os próximos eventos
que você não pode perder :

22/11/2008 SQL Launch -
Linhares - ES
Por : devASPNet


22/11/2008 SQL Launch- SQL Server 2008
Rio Paranaiba - Viçosa - MG
Por : devASPNet


22/11/2008 SQL Launch - SQL Server 2008
Volta Redonda - RJ
Por : devASPNet


22/11/2008 SQL Launch- SQL Server 2008
Franca - SP
Por : devASPNet


22/11/2008 SQL Launch - SQL Server 2008
Canoinhas - SC
Por : devASPNet


22/11/2008 SQL Launch - SQL Server 2008
Tefé - AM
Por : devASPNet


25/11/2008 SQL Launch - SQL Server 2008
Rio de Janeiro - RJ
Por : devASPNet


27/11/2008 SQL Lauch- SQL Server 2008
São Paulo - SP
Por : devASPNet


28/11/2008 SQL Launch - SQL Server 2008
São Paulo - SP
Por : devASPNet


29/11/2008 SQL Launch- SQL Server 2008
Pedro Leopoldo - MG
Por : devASPNet


29/11/2008 SQL Launch- SQL Server 2008
Petropolis - RJ
Por : devASPNet


29/11/2008 SQL Launch
Floriano - PI
Por : devASPNet


29/11/2008 SQL Launch - SQL Server 2008
Rio de Janeiro - RJ
Por : devASPNet


29/11/2008 SQL Launch - SQL Server 2008
Natal - RN
Por : devASPNet


29/11/2008 SQL Launch- SQL Server 2008
Santa Maria - RS
Por : devASPNet


29/11/2008 SQL Launch
Ituiutaba - MG
Por : devASPNet


5/12/2008 Cloud Computing e o Windows Azure
São Paulo - SP
Por : devASPNet


6/12/2008 SQL Server 2008 Community Launch
São Paulo - SP
Por : devASPNet

Leituras imperdíveis para quem está começando:

º Otimizando a performance no ASP.NET::..
º Criando objetos de paginação personalizados na grid::..
º Uma cesta de compras em ASP.NET::..
º Utilizando o Refresh de parâmetros no .NET::..
º ASP.NET FORMS Authentication::..
º Utilizando propriedades dinâmicas no .NET::..
º Corrigindo problemas de deleção em grid com paginação::..
º Cuidado com os componentes de validação::..
º Otimizando o InitializeComponent::..
º Movendo fonte de aplicações entre máquinas::..
º Agilizando a performance da IDE do VS.NET::..
º Utilizando Short Circuit no VB.NET::..


























  Parceiros:
20% de desconto para os membros do grupo na aquisição de livros e inscrição para eventos

Receba dicas de programação e programação .NET:
E-mail:
Incluir Excluir