Olá pessoal, continuamos nossa série de artigos criando
aplicações simples em Windows Forms usando a linguagem C# e o banco de dados
SQL Server.
Nesta parte iremos finalizar nossa padronização no
sistema aplicando algumas configurações personalizadas ao formulário principal.
Falaremos também sobre os conceitos de Programação Orientada à Objetos.
Acompanhem:
De início, vamos alterar as imagens dos menus do form
principal. Para isso, abra o form, clique nos botões do menu, se não tiver dado
nome a eles, aproveite e já dê o nome de Médicos, Pacientes e Consultas. Agora
pesquise no Google Imagens as respectivas imagens para cada botão, salve em seu
pc, clique em cada botão e, no menu Propriedades, clique no botão ao lado do
atributo Image e clique em Import, como mostra a imagem abaixo:

Use de preferência imagens com tamanho máximo de 48x48.
Após inserir as imagens clique no atributo ImageScaling e o deixe como
None para a imagem ficar com o tamanho real. Se a imagem não ficar
transparente, é só alterar a propriedade ImageTransparentColor para a
cor da sua imagem.
Podemos alterar nosso menu de navegação para que fique,
por exemplo, à esquerda de nossa janela e não em cima. Por meio da propriedade
Dock podemos fazer isso, como mostra a imagem abaixo:

Ok, no meu exemplo vou deixá-lo no topo mesmo, mais se
preferir pode alterar a propriedade Dock como mostrou a imagem.
A princípio, nosso formulário está pronto. Com
cadastros e funcionalidades simples, nos deu uma boa visão de como é fácil
trabalhar com os controles do Visual Studio.

Agora imagine o seguinte cenário: uma aplicação dessa
feita para a vida real onde, no cadastro pacientes, não são 5 nem 10 nem 100 e
sim 1000 registros.
Como ficaria se precisarmos navegar no registro 999, por
exemplo? Iriamos de um em um? Ficaria complicado, concordam? Por isso digo que
até o momento montamos um sistema o mais simples possível.
A partir de agora iremos mudar nosso foco e simular uma
aplicação de verdade, para um potencial cliente, utilizando alguns conceitos da
Programação Orientada à Objetos, como a Herança.
De forma simplista o conceito de Herança
significa que uma ou mais classes filhas herdam atributos e métodos da classe
pai (conhecida também como classe base). A herança é usada com a intenção de
reaproveitar o código e assim garantir uma alta produtividade em nosso sistema.
Vamos trabalhar também em nosso sistema com o conceito
de Parametrização, que é o conceito de implementar detalhes e parâmetros
ao sistema de acordo com as necesssidades do cliente. Seguindo este conceito,
não teremos mais um formulário como o de Pacientes, com os botões avançar e
retroceder os registros, pois quando abrirmos o form de Pacientes, não queremos
ver todos os Pacientes e sim ver determinado Paciente.
Será feito assim em todos os formulários, por meio do
conceito de Herança. Teremos também um formulário de pesquisa. Comecemos então
nosso formulário base principal que será o “formulário pai”:
Clique em Add > Windows Form, dê o nome de frmBase
e clique em OK.
Será gerado nosso formulário, clique nele, abra a janela
Properties (F4) e altere as seguintes propriedades:
- Start Position – coloque CenterScreen para que o
form abra no meio da tela
- MaximizeBox – false
- MinimizeBox – false – para que só apareça o
botão de fechar no form
- KeyPreview – true, para ativar o uso do teclado
nos eventos do form
- FormBorderStyle – altere para FixedDialog para
que o form não possa ser redimensionado
Agora vamos inserir os controles que serão padrões nos
demais forms. Arraste uma ToolStrip de nossa Toolbox para o form e
insira 4 botões, 1 separador e mais 1 botão, nessa ordem referentes aos botões Novo,
Salvar, Excluir, Localizar e Fechar conforme mostra
a imagem abaixo:

Altere a propriedade DisplayStyle para Image
and Text dos botões, a propriedade ImageScaling para None e insira imagens
para os botões referentes como fizemos no form anterior. Altere também a
propriedade Design dos botões para podermos identificá-los mais facilmente
quando formos usá-los na programação. Na ordem altere para btnNovo, btnSalvar,
btnExcluir, btnLocalizar e btnFechar.
Adicione o controle StatusStrip a seu form, nele
adicione um StatusStripLabel, dê o nome de lblMensagem e deixe a
propriedade Text em branco para que possamos configurar via código uma
mensagem ao usuário quando ele realizar determinada ação.
Clique com o botão direito no seu form e clique em View
Code ou simplesmente aperte F7 para ir a página de códigos. Nela, vamos
criar um enumerador, com os itens Inserindo, Navegando e Editando, e
criaremos uma variável privada deste enumerador para sabermos qual é o status
do sistema, se por exemplo o usuário estiver inserindo, devemos desabilitar o
botão de excluir, ou quando estiver localizando, devemos desabilitar o botão de
salvar.
Desta forma estaremos otimizando nosso código e evitando
erros do usuário. A imagem abaixo mostra nosso código:

Vamos voltar ao nosso form, no modo visual e implementar
o código para o botão Fechar, como parte de nosso exemplo. Primeiro dê dois
cliques em cima do botão de fechar e chame o método Close(). Depois,
volte ao form, abra a janela de propriedades do mesmo, clique nos Eventos,
selecione o evento KeyDown, dê dois cliques nele e insira o código
abaixo para que o form se feche ao apertar ESC.

Usando esse conceito de Herança em nosso sistema, só
utilizaremos este código acima apenas uma vez e os demais herdarão as
funcionalidades do formulário base, o que melhora nosso desempenho e temos
facilidade se precisarmos dar manutenção.
Na próxima parte de nosso artigo, iremos continuar a
codificação de nosso formulário base implementando os métodos que iremos usar
na herança do mesmo.
Confira no próximo artigo!
Créditos à Luciano Pimenta,
que fez as vídeo-aulas e ao Portal Linha de
Código, por onde pude baixá-las, estudá-las e posteriormente
fazer este artigo.
Quaisquer dúvidas, estou à disposição.
Até o próximo artigo!