private void txtCep_TextChanged(object sender, EventArgs e)
        {
            string cep = ((MaskedTextBox)sender).Text.Replace("-", "").Trim();

            if (cep.Length != 8)
            {
                return;
            }

            var endereco = new Endereco();

            if (!endereco.SearchByCep(cep, null))
            {
                cmbEstado.Focus();
                return;
            }

            if (!string.IsNullOrEmpty(endereco.Uf))
            {
                try
                {
                    cmbEstado.SelectedIndexChanged -= cmbEstado_SelectedIndexChanged;
                    cmbEstado.SelectedIndex         = Estados.FindIndex(estado => estado.Uf == endereco.Uf) + 1;
                    CarregarCidades(endereco.Uf);
                    if (endereco.IdCidade != 0)
                    {
                        cmbCidade.SelectedIndex = Cidades.FindIndex(cidade => cidade.Id == endereco.IdCidade) + 1;
                    }
                }
                finally
                {
                    cmbEstado.SelectedIndexChanged += cmbEstado_SelectedIndexChanged;
                }
            }

            if (!string.IsNullOrEmpty(endereco.TipoLogradouro))
            {
                cmbTipoLogradouro.Text = endereco.TipoLogradouro;
                txtLogradouro.Focus();
            }

            if (!string.IsNullOrEmpty(endereco.Logradouro))
            {
                txtLogradouro.Text = endereco.Logradouro;
                txtComplemento.Focus();
            }

            if (!string.IsNullOrEmpty(endereco.Complemento))
            {
                txtComplemento.Text = endereco.Complemento;
                txtBairro.Focus();
            }

            if (!string.IsNullOrEmpty(endereco.Bairro))
            {
                txtBairro.Text = endereco.Bairro;
                txtNumero.Focus();
            }
        }
        public FormDadosPessoaisCliente(Cliente cliente) : this()
        {
            if (cliente == null)
            {
                throw new NullReferenceException("O parâmetro cliente não pode ser nulo!");
            }

            try
            {
                txtCep.TextChanged -= txtCep_TextChanged;

                IdCliente = cliente.Id;

                txtNome.Text = cliente.Nome;
                txtCpf.Text  = cliente.Cpf;
                if (cliente.DataNascimento != null)
                {
                    txtDataNascimento.Text = ((DateTime)cliente.DataNascimento).ToString("dd/MM/yyyy");
                }
                txtTelefone.Text = cliente.Telefone;
                txtCelular.Text  = cliente.Celular;
                txtEmail.Text    = cliente.Email;
                txtCep.Text      = cliente.Cep;
                if (!string.IsNullOrEmpty(cliente.Uf))
                {
                    cmbEstado.SelectedIndex = Estados.FindIndex(estado => estado.Uf == cliente.Uf) + 1;
                    if (cliente.IdCidade != 0)
                    {
                        cmbCidade.SelectedIndex = Cidades.FindIndex(cidade => cidade.Id == cliente.IdCidade) + 1;
                    }
                }
                cmbTipoLogradouro.Text = cliente.TipoLogradouro;
                txtLogradouro.Text     = cliente.Logradouro;
                txtComplemento.Text    = cliente.Complemento;
                txtBairro.Text         = cliente.Bairro;
                txtNumero.Text         = cliente.Numero;
            }
            finally
            {
                txtCep.TextChanged += txtCep_TextChanged;
            }
        }