Neste artigo, vou mostrar como preencher os dados de um endereço a partir do CEP de forma automática, usando uma biblioteca que acessa dados dos Correios e que será instalada via Nuget.
O Nuget é um gerenciador de pacotes fantástico, que facilita a vida do desenvolvedor. Através deles, temos acesso a centenas de bibliotecas com recursos que podemos usar em nossas aplicações.
Vamos criar uma aplicação Windows Forms Application usando o Visual Studio 2015 Community usando a linguagem C# com o nome WF_BuscaCep.
No formulário form1.cs do projeto, inclua os seguintes controles:
- 5 Labels
- 5 TextBox : txtCep, txtEstado, txtCidade, txtBairro, txtRua
- 1 Button : btnEncerrar
- 1 PictureBox
Disponha os controles conforme o leiaute da figura abaixo:
A seguir, vamos incluir uma referência em nosso projeto à biblioteca que vai acessar os dados do endereço a partir do CEP.
No menu Tools -> Nuget Package Manager, clique em Manage Nuget Packages for Solution. Depois, clique na guia Browse e informe o nome correios.
A seguir, selecione a biblioteca Correios.CEP.Net, marque todos os projetos e clique no botão Install:
Usando a biblioteca
Agora, basta usar os recursos da biblioteca que temos referenciada no projeto.
O objetivo é digitar o CEP e obter os dados do respectivo endereço exibidos nas caixas de texto.
Inclua a declaração do namespace abaixo no formulário:
using Correios.Net;
A implementação pode ser feita no evento Leave do TextBox txtCep de forma que, ao terminar de digitar o CEP, o evento será disparado executando o código deste evento(você pode implementar de diversas outras formas, ok?).
Inclua no evento Leave o código abaixo, que chama o método LocalizaCEP():
private void textCep_Leave(object sender, EventArgs e) { LocalizarCEP(); }
O código do método LocalizarCEP() é dado a seguir:
private void LocalizarCEP() { if (!string.IsNullOrWhiteSpace(txtCep.Text)) { Address endereco = SearchZip.GetAddress(txtCep.Text); if (endereco.Zip != null) { txtEstado.Text = endereco.State; txtCidade.Text = endereco.City; txtBairro.Text = endereco.District; txtRua.Text = endereco.Street; } else { MessageBox.Show("Cep não localizado..."); } } else { MessageBox.Show("Informe um CEP válido"); } }
O código usa o método estático GetAddress da classe SearchZip para obter as informações do endereço a partir do CEP.
Executando o projeto teremos o seguinte resultado:
Para mais informações sobre a biblioteca, acesse o site do autor: https://github.com/hamboldt/Correios.Net
Pegue o projeto aqui: WF_BuscaCep.zip