Back-End

8 fev, 2017

C# – Preenchendo os dados do endereço a partir do CEP

Publicidade

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