0 Compartilhamentos 367 Views 1 Comments

Reusando código e interfaces no VB.NET 2005

21 de outubro de 2007

Hoje vou mostrar a aplicação da herança visual e código em formulários Windows e aproveitar para criar um cadastro básico usando somente código usando VB.NET 2005.

Você pode usar este recurso para obter ganho de produtividade reusando interfaces e código em formulários Windows. Vamos lá…

Vamos supor que você tenha em uma aplicação a necessidade de criar muitos formulários de cadastros básicos, esse cenário não é tão difícil de ocorrer como muitos possam imaginar, e, com o uso da herança visual de formulários você pode resolver o problema rapidamente.

A primeira coisa que você deve fazer é criar um formulário que será o formulário base , o modelo para os demais formulários. Ele deverá conter controles e código que sejam comuns a todos os demais formulários. Um formulário de cadastro pode ter muitos leiautes distintos mas se formos usar a codificação para realizar as tarefas básicas de manutenção em um cadastro teremos que ter os seguintes controles:

  • Botões de comando para Navegação pelos registros da tabela
  • Botões para realizar as operações de : Incluir, Excluir, Salvar e Sair
  • Uma área onde iremos colocar os campos para exibir os registros da tabela
  • Uma imagem para enfeitar o formulário (Isto é opcional)
    Ao lado esta a interface do formulário base que eu criei com base nos requisitos acima. Isto é apenas uma sugestão e você pode incrementar o seu próprio formulário modelo.

Eu usei o Visual Basic 2005 Express Edition e criei um novo projeto chamado herancaForm. Em seguida alterei o nome do formulário padrão form1.vb para frmCadatsro.vb.

Você também pode definir algumas propriedades do formulário que deseja que sejam comuns a todos os formulário que irão herdar do formulário modelo. Assim também defini as seguintes propriedades do formulário:

  • StartPosition = CenterScreen
  • KeyPreview = True
  • ControlBox = False
  • Text = Cadastro

Além disso devemos alterar a propriedade Modifiers de cada controle do formulário definindo o valor como Protected, assim teremos condição de editar os controles nos formulários filhos.

A nível de código também podemos definir o código que será comum a todos os formulários filhos. No caso do nosso exemplo eu defini as seguintes rotinas e variáveis:

A variável indice que controla o índice correspondente ao registro na tabela foi definido como public bem como todas as rotinas de forma a serem visíveis no projeto todo.

Nos botões de navegação do formulário , em cada evento Click, a variável indice é incrementada ou decrementada conforme o posicionamento do registro e a rotina exibirDados() também foi definida sem código algum pois será implementada no formulário filho.

No evento Click do botão Sair o código para encerrar a aplicação também já foi definido.

Agora já podemos usar o nosso formulário base para herdar a partir dele a interface e o código.

Clique com o botão direito do mouse sobre o nome do projeto e selecione a opção Add New Item, na janela Templates, selecione Inherited Form.

Será apresentada uma janela Inheritance Picker onde você deve selecionar o formulário modelo que irá ser o formulário Pai.

Será apresentado o form1.vb com o seguinte leiaute herdado do formulário base frmCadastro:

Clique no item My Project e na aba Application defina Startup form para Form1.

Se você executar o projeto neste momento irá ver o formulário form1.vb vazio, mas se clicar no botão Sair será exibida a caixa para confirmar a saída e se você confirmar o formulário será fechado.

Mas como? Nós ainda não digitamos nenhum código no formulário form1.vb?

Sim, mas como ele herdou do formulário frmCadastro.vb que o formulário Pai , o código do botão Sair definido no formulário Pai foi herdado pelo formulário filho form1.vb. Legal não é mesmo.

Agora eu vou implementar o cadastro das Categorias usando o banco de dados Northwind.mdf e a tabela Categories.

Primeiro vou criar um DataSet. Clique com o botão direito do mouse sobre o nome do projeto e selecione Add New Item. Na janela template selecione o DataSet informando o nome Categorias.xsd.

A seguir crie uma conexão com o banco de dados Northwind.mdf usando o DataBase Explorer (se ela ainda não existir) e a seguir arraste a tabela Categories para o descritor DataSet conforme figura abaixo:

Agora podemos definir o código do nosso formulário de cadastro de categorias. Para simplificar eu não vou tratar o campo Picture da tabela somente os campos CategoryID, CategoryName e Description.

Devemos alterar o TableAdapter clicando com o botão direito do mouse e selecionando Configure para em seguida definir a instrução SQL para SELECT CategoryID, CategoryName, Description FROM dbo.Categories, removendo o campo Picture.

Então vamos incluir 2 caixas de texto e 3 Labels para exibir os campos que iremos tratar. Os nomes das caixas de textos são:

  • txtCategoriaID.text
  • txtCategoriaNome.text
  • txtCategoriaDescricao.text

A primeira coisa a fazer é definir o namespace

Em seguida vamos criar um DataTable chamado Categorias

Código do evento Load do formulário form1.vb que cria um adapter e preenche com base no DataTable Categorias.

A rotina exibirDados() deverá sobrescrever a rotina já definida no formulário Pai frmCadastro.vb por isso usei o modificador OverLoads:

Essa rotina é responsável pela exibição dos dados nas caixas de texto.

O código do botão Novo é dado a seguir. Note que ela apenas define o indice e limpa os campos do formulário. A rotina limpaCampos() percorre os controles textBox no interior do controle GroupBox e limpa os controles.

A seguir o código do botão Salvar que usa o método Insert do adapter para incluir os dados na tabela:(Perceba que o campo categoryID não é tratado pois ele é um campo auto incremental)

O código para excluir vem a seguir, e usa o método Delete do adapter para excluir um registro da tabela.

Finalmente o código de cada um dos botões , nele não precisamos controlar a variável índice pois isto é feito no formulário Pai, devemos apenas chamar a rotina exibirDados que foi sobrescrita:

Executando o projeto você verá o formulário form1.vb com todas as funcionalidades prontas conforme figura a seguir:

Você viu neste artigo como podemos usar a herança visual em nosso proveito e ganhou de presente um cadastro básico via código usando DataSet e TableAdapter.

Carregando...

Você pode se interessar

Promoções de Jogos do Final de Semana (25/09)
Notícias
12 visualizações
Notícias
12 visualizações

Promoções de Jogos do Final de Semana (25/09)

Carlos L. A. da Silva - 25 de setembro de 2020

Confira as melhores ofertas de jogos de PC para o final de semana.

Cinco alternativas ao Moment.js que você precisa conhecer agora
Artigos
11 visualizações
Artigos
11 visualizações

Cinco alternativas ao Moment.js que você precisa conhecer agora

Carlos L. A. da Silva - 25 de setembro de 2020

Biblioteca será aposentada, mas não é de hoje que já existem opções mais robustas no mercado.

Como desativar temporariamente sua conta do Facebook
Dicas
79 visualizações
Dicas
79 visualizações

Como desativar temporariamente sua conta do Facebook

Carlos L. A. da Silva - 19 de setembro de 2020

Preparado para um "detox" da rede social? O Facebook permite que você suspenda sua conta sem precisar apagá-la permanentemente.

One Response

Deixe um Comentário

Your email address will not be published.

Mais publicações

Promoções de Jogos do Final de Semana (18/09)
Notícias
17 visualizações
17 visualizações

Promoções de Jogos do Final de Semana (18/09)

Carlos L. A. da Silva - 18 de setembro de 2020
O que você precisa saber sobre o Pix
Artigos
26 visualizações
26 visualizações

O que você precisa saber sobre o Pix

Carlos L. A. da Silva - 16 de setembro de 2020
Como centralizar no CSS de forma definitiva
Dicas
23 visualizações
23 visualizações

Como centralizar no CSS de forma definitiva

Carlos L. A. da Silva - 12 de setembro de 2020
Promoções de Jogos do Final de Semana (11/09)
Notícias
30 visualizações
30 visualizações

Promoções de Jogos do Final de Semana (11/09)

Carlos L. A. da Silva - 11 de setembro de 2020