none
Error Provider RRS feed

  • Pergunta

  • Fala ae galera to utilizando o error provider em  um projeto mais to com algumas dúvidas e caindo em alguns erros.

     

    bool Error = false;
    
    private void ValidarForm()
    {
      if(txtNome.Text == sting.Empty)
      {
        erp.SetError(txtNome, "Preencha o campo Nome");
        Error = true;
      }
      else
      {
        erp.SetError("");
        Error = false;
      }
    
      if(txtLogradouro.Text == sting.Empty)
      {
        erp.SetError(txtLogradouro, "Preencha o campo Logradouro");
        Error = true;
      }
      else
      {
        erp.SetError("");
        Error = false;
      }
    }
    
            private void btnSalvar_Click(object sender, EventArgs e)
            {
                cliente.Nome = txtNome.Text;
                cliente.Endereco.Logradouro = txtLogradouro.Text;
                cliente.Endereco.CEP = txtCEP.Text;
                cliente.Endereco.Bairro = txtBairro.Text;
                cliente.Endereco.Estado = cmbEstado.Text;
                cliente.DataCadastro = DateTime.Now;
                cliente.Email = txtEmail.Text;
                cliente.Telefone = txtTelefone.Text;
    
                ValidarForm();
    
                if (Erro == false)
                {
                    cadastrarClienteHandler.Gravar(cliente); 
                    this.DialogResult = DialogResult.OK;
    
                    bs.ResetBindings(false);
                    this.Close();
                }
            }
    
    

     


    Ai o que acontece seu eu preencher os campos do início e do final e aperta o salvar ele passa. Pois os campos do final acabam dando condição pra isso...

     

    Alguém tiver alguma dica ou solução manda ai...

     

    Grato desde já!


    Portal: www.teleportese.com



    segunda-feira, 9 de janeiro de 2012 16:52

Respostas

  • Oi Ricardo,

    Veja se isso ajuda:

    private void ValidarForm()
    {
    Error = false;
    
      if(txtNome.Text == sting.Empty)
      {
        erp.SetError(txtNome, "Preencha o campo Nome");
        Error = true;
      }
    
      if(txtLogradouro.Text == sting.Empty)
      {
        erp.SetError(txtLogradouro, "Preencha o campo Logradouro");
        Error = true;
      }
    }

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.wordpress.com/
    Twitter: @ferhenrique
    • Marcado como Resposta Ricardo Masala terça-feira, 10 de janeiro de 2012 12:20
    segunda-feira, 9 de janeiro de 2012 18:53
    Moderador

Todas as Respostas

  • O que considera Início ? E final? Creio que seja Início campo Nome e final os restantes.

     

    O método ValidarFormulario instanciado no começo do código é o mesmo que ValidarForm() ?

    Creio que seja também.

     

    Vamos lá:

    Pelo que entendi o tratamento se restringe ao atributo cliente.Nome

    Então deve pensar quais campos mais precisa validar !

     

     

    Minha dica é esta:

    Sua função faz duas vezes a mesma coisa para a propriedade Nome, observe acima.

     

    A solução é validar outros campos que deseja validar pois do contrário como você mesmo notou "os campos do final sempre acabam dando condições pra isso..."

     

    segunda-feira, 9 de janeiro de 2012 17:43
  • Eu coloquei só o nome e corrigi lá pois dupliquei mais só coloquei dos campos como exemplo pra não colocar o código todo. E início e final que eu digo são os campos...
    Portal: www.teleportese.com
    segunda-feira, 9 de janeiro de 2012 17:58
  • Entendi o lance do exemplo.

     

    Mas pela lógica você tem feito errado:

    txtLogradouro.Text == sting.Empyt

    Mas a palavra correta é Empty 

    Sugiro utilizar outro método mais elaborado:

    if(String.IsNullOrEmpty(txtNome.Text.Trim()))

    Referência:
    http://msdn2.microsoft.com/en-us/library/system.string.isnullorempty.aspx



    segunda-feira, 9 de janeiro de 2012 18:17
  • Cara o exemplo é só o exemplo código ta certo aqui na minha máquina ele valida mais oque acontece ele vem passando por todos os campos ai vamos supor que o campo nome esteja certo e o logradouro também mais um terceiro campo não e o quarto campo sim oque acontece, o quarto campo acaba dando condição ao terceiro campo que não está correto entendeu?

    nome = ok

    logradouro = ok

    telefone = erro

    email = ok


    Portal: www.teleportese.com
    segunda-feira, 9 de janeiro de 2012 18:23
  • Oi Ricardo,

    Veja se isso ajuda:

    private void ValidarForm()
    {
    Error = false;
    
      if(txtNome.Text == sting.Empty)
      {
        erp.SetError(txtNome, "Preencha o campo Nome");
        Error = true;
      }
    
      if(txtLogradouro.Text == sting.Empty)
      {
        erp.SetError(txtLogradouro, "Preencha o campo Logradouro");
        Error = true;
      }
    }

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.wordpress.com/
    Twitter: @ferhenrique
    • Marcado como Resposta Ricardo Masala terça-feira, 10 de janeiro de 2012 12:20
    segunda-feira, 9 de janeiro de 2012 18:53
    Moderador
  • Po Fernando vc é sinistro! Batata... Shuahsuahusa funciono muito bem ta tudo certinho agora! Só vo acaba de fazer os tratamentos... Brigadão!

     


    Portal: www.teleportese.com
    terça-feira, 10 de janeiro de 2012 12:20
  • Outra dúvida como eu não conheço mt a sintaxe do C# como eu faço pra validar um campo numérico?

     

    Agradeço desde já!


    Portal: www.teleportese.com
    terça-feira, 10 de janeiro de 2012 12:44
  • Olá Ricardo,

    Tenta fazer assim:

    int valor = 0;
    if (!Int32.TryParse(this.txtCampo.Text, out valor))
    {
    erp.SetError(this.txtCampo, "Valor numérico inválido");
    Error = true;
    }

     

    ps.: todo trabalho é em nome da comunidade :)

     

    []s!

     


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.wordpress.com/
    Twitter: @ferhenrique
    terça-feira, 10 de janeiro de 2012 12:55
    Moderador