Usuário com melhor resposta
textbox com evento leave

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
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).
- Editado Bruno Maschio Joaquim segunda-feira, 6 de julho de 2015 16:46
- Marcado como Resposta Junin incipiente segunda-feira, 6 de julho de 2015 20:41
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.
-
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).
- Editado Bruno Maschio Joaquim segunda-feira, 6 de julho de 2015 16:46
- Marcado como Resposta Junin incipiente segunda-feira, 6 de julho de 2015 20:41
-