none
textbox com evento leave RRS feed

  • Pergunta

  • tenho um textbox custo e um margem, e na propriedade leave do textbox margem coloquei para calcular automaticamente o valor de venda, porem quando passa pelo campo e não digita nada, ele tenta calcular com o valor zerado e da um erro,  "Additional information: A cadeia de caracteres de entrada não estava em um formato incorreto."

    sei que tenho que tratar para que se o valor do textbox for nulo não calculcar, mais não sei como fazer

    Obrigado

    segunda-feira, 6 de julho de 2015 16:11

Respostas

  • Olá, você pode usar o TryParse para verificar se o valor que está no TextBox é valido, segue abaixo um exemplo.

    int custo;
                int margem;
    
                if(int.TryParse(textBoxCusto.Text, out custo) && int.TryParse(textboxMargem.Text, out margem))
                {
                    textBoxVenda.Text = calculo();
                }
                else
                {
                    textboxVenda.Text = "";
                    MessageBox.Show("Algum valor informado é invalido.");
                }

    Basicamente você vai tentar converter os dois valores, custo e margem, caso um deles não tenha um valor válido, ele apaga o que tem no TextBox venda e emite uma mensagem.

    OBS: Nesse exemplo eu assumi que o valor desejado para conversão seja int, caso seja outro tipo, só alterar o int par a o tipo desejado (double.TryParse, por exemplo).



    segunda-feira, 6 de julho de 2015 16:45

Todas as Respostas

  • Junin, o evento leave é acionado quando o textbox esta em foco e sai.

    Vc deveria usar o Validating com uma condição de if() , pois este evento ira verificar se algo foi alterado no textbox.

    Exemplo

    if( textbox1.text == a)

    { calculo();  }

    else

    { //nada  }

    Att, wsti.

    segunda-feira, 6 de julho de 2015 16:29
  • Olá, você pode usar o TryParse para verificar se o valor que está no TextBox é valido, segue abaixo um exemplo.

    int custo;
                int margem;
    
                if(int.TryParse(textBoxCusto.Text, out custo) && int.TryParse(textboxMargem.Text, out margem))
                {
                    textBoxVenda.Text = calculo();
                }
                else
                {
                    textboxVenda.Text = "";
                    MessageBox.Show("Algum valor informado é invalido.");
                }

    Basicamente você vai tentar converter os dois valores, custo e margem, caso um deles não tenha um valor válido, ele apaga o que tem no TextBox venda e emite uma mensagem.

    OBS: Nesse exemplo eu assumi que o valor desejado para conversão seja int, caso seja outro tipo, só alterar o int par a o tipo desejado (double.TryParse, por exemplo).



    segunda-feira, 6 de julho de 2015 16:45
  • valeu deu certo parceiro
    segunda-feira, 6 de julho de 2015 20:41