Oi, gente, tudo bem? Meu nome é Victorino Vila e eu vou ser o instrutor do curso de Windows forms com Csharp. Esse é o quinto curso de uma série de cursos que a gente publicou aqui na plataforma Alura.
Nesse curso a gente vai dar continuidade ao nosso formulário de cadastro de cliente do banco Bytebank. Só que agora a gente vai salvar isso dentro do disco rígido da nossa máquina. A gente vai usar o seguinte princípio. A gente vai criar um diretório na nossa máquina. Esse diretório vou chamar de fichário. Dentro desse diretório a gente vai ter arquivos onde cada arquivo vai ser uma ficha. Dentro desse arquivo, vamos ter o JSON do cliente.
Vamos usar esse método para salvar os dados dos clientes porque aí a gente vai poder ver como o Windows forms interage com diretório, com arquivos, dentro da nossa própria máquina.
Também vamos no formulário, claro, a partir do momento que a gente vai aprender a salvar os dados, vamos implementar a inclusão, alteração, exclusão, consulta de um cliente e um formulário especial, uma dialog box para a gente ver todas as listas de clientes e poder escolher um cliente para poder ou consultar, ou alterar ou excluir.
A gente depois vai reformular nosso programa onde vamos fazer que a classe cliente enxergue nossa classe fichário, ao invés do formulário estar olhando as duas classes ao mesmo tempo. E a gente vai preparar nossa aplicação para uma evolução posterior a essa, que seria a relação desse formulário com o banco de dados. Mas essa parte final a gente não vai ver nesse treinamento. A gente vai ver em treinamentos posteriores. Mas esse treinamento parte 5 é uma construção de uma linha didática que vem desde o curso Windows forms parte 1 até agora e vai continuar em cursos posteriores.
Espero que vocês gostem. Um abraço e até o próximo vídeo.
Para a gente fazer esse treinamento a gente precisa ter um ambiente pronto para começar a trabalhar em cima de um projeto da nossa aplicação do banco Bytebank.
Se você já vem fazendo os cursos Csharp Windows forms parte 1, 2, 3 e 4 e deu tudo certo, você está com um ambiente igualzinho conforme eu construí durante esses treinamentos, vocês não precisam baixar esse projeto, porque a gente vai continuar nesse curso no ponto que a gente parou no curso anterior.
No mão na massa, aqui embaixo desse vídeo, vocês vão ver o link para vocês baixarem o projeto caso vocês queiram ou não usar o projeto que vocês estão usando ou então você não tem projeto nenhum, você está usando uma máquina limpa, onde você não tem nada, então você tem que baixar o projeto.
Detalhe. É importante que você tenha o visual studio instalado na máquina, senão você não vai conseguir desenvolver os exercícios desse treinamento. Lá no curso Windows forms para Csharp parte 1, ou seja, o primeiro curso, logo na primeira aula tem uns vídeos onde mostro como a gente instala o visual studio.
Então se você está com uma máquina limpa que não tem visual studio e quer fazer instalação, dá um pause aí, voltar no curso 1, assiste o vídeo onde mostro a instalação, instala o visual studio. Você vai voltar para cá e vai baixar o projeto.
Supondo que você já tenha o visual studio na sua máquina, bonitinho, funcionando, você vai baixar o projeto e tenho aqui no meu computador esse arquivo curso Windows forms .zip. Vocês descompactam esse arquivo, a gente vai copiar ou mover ele, tanto faz, e coloca numa pasta que tem um caminho mais curto de fácil acesso para você. No meu caso já tenho uma pasta C Windows forms curso e aqui estou colando o meu projeto.
O diretório onde essa pasta Windows forms vai ficar pode ser qualquer um na sua máquina, eu só aconselho a vocês colocarem em um diretório que seja de fácil acesso.
Dentro dessa pasta eu tenho esse arquivo, que é o arquivo da nossa solução. Vou clicar aqui em cima e vou abrir meu projeto. Temos o projeto final do curso anterior, vou me certificar que aqui em cima esteja debug, e também verificar se o curso Windows forms é o curso principal do projeto. Normalmente ele vai estar em negrito. Se não for, você vem com o botão direito do mouse, propriedades, e vai selecionar aqui o projeto que vai inicializar sua solução.
Com esse projeto selecionado, vou clicar em iniciar, a gente vai ver o menu principal da nossa aplicação, a gente vem em arquivo conectar, entra com usuário e senha, e pronto, tenho em Bytebank cadastro clientes o formulário de clientes com os botões de inclusão, buscar, abrir, atualizar, deletar e apagar todos os dados da tela.
Nosso objetivo agora é capturar as informações desse formulário e gravar em algum lugar, para depois a gente poder recuperar. A gente até agora só construiu esse formulário, construímos as classes, fizemos as críticas. Agora está na hora de gravar isso em algum lugar.
Esse processo de gravar as informações do formulário e buscar depois a gente vai ver durante esse treinamento de várias maneiras, não vamos fazer de uma só maneira não. Mas aí a gente vai aprender como o Windows forms se relaciona com o banco de dados ou com arquivos externos que estão gravados na minha máquina.
Vamos entender como a gente construiu a barra de ferramentas do nosso formulário? Vou executar de novo nosso projeto, me conectar, a senha é curso, tudo minúsculo. Vou dar ok e abrir o formulário.
Note que temos uma barra de ferramentas que construímos nos cursos anteriores só para aprender como construir esse componente dentro do Windows forms.
Tenho cinco ícones e cada ícone vai fazer uma ação sobre o conteúdo do formulário em relação ao local onde a informação vai ficar armazenada. Eu preparei um catálogo do que cada ação daquela vai fazer.
Quando eu clicar nesse botão inicial, vou pegar todo o conteúdo que tenho no formulário e vou incluir no local onde vou armazenar essa informação. Claro, clicando nesse botão vou validar o formulário para saber se tem algum erro. Validando vou fazer a ação de incluir no local de armazenamento.
O segundo ícone, que é a pasta de open, vou buscar do local de armazenamento um cliente baseado no código dele. Vou digitar no formulário o código do cliente e vou buscar a informação.
O ícone de salvar vou salvar a informação que tenho no formulário, mas obrigatoriamente, diferente do primeiro botão, que é incluir, esse botão vai atualizar no local de armazenamento os dados do formulário.
O botão x vai funcionar parecido com o de open. Ele vai pegar o código que está no formulário do cliente e vai apagar da base. E essa vassoura simplesmente vai limpar os dados do meu formulário.
A gente vai nesse treinamento fazer essas situações armazenando o conteúdo do formulário de diversas maneiras diferentes, usando banco de dados, arquivos da sua própria máquina, enfim. O tema desse treinamento vai ser formas diferentes que a gente pode armazenar o conteúdo do formulário para depois a gente poder recuperar ele.
Vamos fazer a ação mais simples dessas cinco, que não depende de onde vou armazenar a informação. Não importa se vou armazenar em banco de dados, se vou armazenar em disco, que é o limpar o formulário.
Estou agora no meu projeto. Vamos entender. Nosso formulário está na parte de designer. Se você não estiver com ele aberto, duplo clique, RFM cadastro cliente UC. A gente abre o modo designer.
Eu tenho alguns componentes do formulário cuja propriedade tem que ser limpa, é a propriedade text, dos text boxes. É o código, nome, nome da mãe, assim por diante. Mas existem aqui três componentes que não são text boxes que devem ser limpos também. O check box, os option buttons, e o combo box, que é esse que tenho os Estados.
O check box tem que ficar desmarcado, quando eu limpar o formulário. Dos radio buttons vou deixar desmarcado o primeiro, e no caso do combo box não vai aparecer nada.
Vamos para o código. Botão direito sobre o formulário. Exibir código. Vou criar depois da inicialização aqui embaixo uma void chamada limpar formulário. E não vou passar parâmetro nenhum, porque convenhamos, para limpar o formulário não preciso passar nada, não preciso passar um id, não preciso passar nenhuma informação para limpar o formulário, os dados da tela.
Vou pegar a propriedade text de todos os text boxes e substituir por vazio. Tenho aqui esses labels, que vão estar aqui. Na sua maioria esses labels possuem text box, e usando nosso padrão de nomenclatura a gente sabe que o nome deles é txt_, o mesmo sufixo que tenho no caso dos labels. Então vou combinar esse trecho do programa e vou colar aqui.
Só que ao invés de lbl vou colocar txt, que foi o padrão que a gente usou do prefixo na frente de todo o componente de text box. Vou selecionar essas opções e vou clicar em editar, localizar, substituição rápida. Já tenho ela inclusive aqui.
Vou escrever lbl_, vai substituir por txt_. Substituí 13 ocorrências. O conteúdo desses text boxes tem que ser vazio. O que vou fazer é colocar que o conteúdo deles é vazio quando o formulário for inicializado.
Pronto. Só que tem um cara que está com erro. É esse txt estado, porque o estado é um combo box. Ele não é um text box. Então, na verdade, vou substituir por cmb, de combo box.
Continua erro. Vamos ver o que ele está me dizendo, cmb Estado não existe no contexto atual. Era cmb Estados. Coloquei text igual a vazio. Será que isso funciona? Na verdade, isso vai funcionar, mas eu prefiro usar a inicialização do combo box de uma maneira diferente.
Ao invés de limpar a propriedade text, vou fazer isso aqui. Selected index. Na verdade, é no combo box. E a propriedade que coloco aqui tem que ser inteiro, se eu colocar o mouse aqui ele vai me dizer que ele é do tipo int.
Eu vou colocar a posição do combo box que eu quero que esteja selecionado. Como eu não quero posição nenhuma, coloco -1, que vai selecionar o vazio. Ainda faltam todos os outros componentes. Temos o componente check box, é o chk tem pai, que já tem que vir desmarcado. Quando eu limpar o formulário, tenho que desmarcar essa opção.
Voltando ao código, vou dizer que o chk tem pai checked é igual a falso. A propriedade checked diz se está marcado ou não. Se estiver marcado o componente checked é true. Se não estiver marcado o componente checked é falso.
Ainda faltam os radio buttons. Vamos deixar um deles marcado quando eu limpar o formulário. Eu vou escolher esse primeiro aqui, que é o rdb masculino. Vou selecionar ele, volto para o código fonte, ele .checked é igual a true.
Como são radio buttons que estão dentro de um group box, quando eu selecionar um, os outros se apagam. Vamos testar para ver se esse código está legal? Mas antes de testar ainda temos que fazer mais uma coisa. Eu sei que essa procedure limpa o formulário, então vou vir aqui de novo no modo designer do meu cadastro e dar um duplo clique sobre a opção clean.
Eu vou executar esse método aqui, que por enquanto só escreve o message box. Vou apagar esse message box e vou escolher o limpa formulário. Quando clicar sobre ele, o formulário será limpo. Vamos testar.
Vou executar aqui nossa aplicação. Vou me conectar como usuário Victorino e senha curso. Coloco o meu nome e venho em cadastro clientes. Aí vou colocar qualquer coisa. Vou marcar esse, feminino, CEP preciso colocar um válido. Telefone, profissão, renda familiar. Tem tudo preenchido.
Vou clicar na vassoura, limpou tudo. Esse cara ficou no masculino, esse cara ficou desmarcado, e o combo box também está com seleção vazia. Mas ficou faltando código. O código não está limpo.
Vamos olhar o formulário no modo designer para pegar o nome daquele componente. É o txt código, a gente vai colocar aqui na parte onde a gente declarou nossas inicializações e vou colocar txt código text igual a vazio. Vamos salvar e executar.
Se eu vier no formulário, preencho o código, o nome, nome da mãe, CPF, vou colocar feminino. O nome do pai é desconhecido. CEP. Tirei o foco do CEP, colocou a rua. Vou colocar o complemento. Telefone. Profissão e renda familiar. Vou clicar na vassoura. Agora limpou tudo. A gente já tem a ação de limpeza do formulário, que pode ser chamado com um clique do botão a qualquer momento.
Uma coisa que eu gosto de fazer, apesar de que acho que não tem muito sentido, mas é uma questão mais de organização. Eu gosto de colocar o limpar formulário na instância da classe. Ou seja, a classe entra e já garanto que o formulário vai estar limpo. Entrou e limpou o formulário. Aí eu mudo dados do formulário. Se eu quiser limpar de novo clico na opção e limpo novamente. Vou salvar e é isso, gente.
O curso Windows Forms com C#: manipulando os dados do cliente possui 279 minutos de vídeos, em um total de 67 atividades. Gostou? Conheça nossos outros cursos de .NET em Programação, ou leia nossos artigos de Programação.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.