Usuário com melhor resposta
Duvida de como usar o Try Catch em uma ou mais TextBox (desktop)

Pergunta
-
Respostas
-
André.
Então, eu quero usar o Try Catch para uma textBox que vai ler uma string não aceitar int e vice-versa!
Eu tenho que usar o Try Catch em formulários com mais de uma textBox.
Obrigado pela atenção André!
Abraço!
Matheus
Se me permite, existe uma maneira bem simples de achar um dígito ou um alfanumérico numa string
usando LINQ
try { string str = seuTextBox.Text; int result = (from c in str where char.IsDigit(c) select c).Count(); if (result > 0) throw new Exception("Não são permitidos números. Favor digitar apenas letras"); } catch(Exception ex) { MessageBox.Show(ex.Message); } finally { seuTextBox.Clear(); }
A expressão acima vai procurar em cada caracter da string por um dígito, se encontrar, retornará o número de ocorrencias na variavel inteira result.
Se result > 0, existem números
Se result = 0, não existem números
[]s
- Marcado como Resposta matheus-szmodic sexta-feira, 1 de abril de 2011 00:58
Todas as Respostas
-
Matheus,
Como assim usar o try-catch em mais de uma TextBox? O quê você está querendo fazer? Validar alguma coisa? O try-catch serve para fazer o tratamento de exceptions... Dê maiores detalhes do seu cenário para vermos onde isso se encaixaria...
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima -
Geralmente não são usadas no controle em si. São usadas em
- Eventos que estão ligados ao controle (Leave, Enter, TextChange, KeyPress, etc)
- métodos de validação de texto por exemplo
- Entre outras coisas
antes de mais nada, de usar o try-catch-finally, vc deve entender como ele funciona. Vc deve saber que o try tenta fazer uma ação qualquer, e o catch será executado no caso de alguma exceção ser disparada enquanto o try estava sendo executado.
O finally será executado independentemente do catch, ou seja, se ocorrer uma exception ou não, o fluxo do programa passa por ele.
Algo como (testar se um valor é passivel de ser o divisor de uma equação)
try { decimal numero = Convert.ToDecimal(textBox1.Text); decimal divisao = 1/numero; } catch(DivideByZeroException ex) { label1.Text = "É impossível dividir por zero. Tente novamente; } finally { textBox1.Clear(); //limpa o valor da textbox }
Se ocorrer uma exceção, ou não, eu irei sempre limpar o valor do textbox, pq ele está dentro do finally, que sempre é executado!
Esse é um exemplo, bemmmmmmmm vago e bemmmmmmmm simples de try-catch-finally. Vc usa muito eles em acesso a dados, validações, qualquer coisa que envolva algo incerto e que possa de certa forma, interromper o fluxo do programa, é passivel de ser usado em try=catch=finally
[]s
- Sugerido como Resposta AndreAlvesLimaModerator quinta-feira, 31 de março de 2011 21:39
-
-
Ainda não entendi muito bem o que você quis dizer...
Você quer pegar um formulário e na hora de digitar nas caixas de texto, algumas irão ler somente uma String e outras somente um Integer? E você quer fazer isto dentro de uma try, catch, finally?
Se for isso mesmo (espero que seja)... Tá aí um exemplo
private void txtTeste_KeyPress(object sender, KeyPressEventArgs e) { try { if (!char.IsNumber(e.KeyChar)) { e.Handled = true; } } catch (Exception ex) { MessageBox.Show("Error: " + ex.Message); Application.Exit(); } finally { //... } }
Alan Machado _ If mySocialFile.IsNull Then Return True -
André.
Então, eu quero usar o Try Catch para uma textBox que vai ler uma string não aceitar int e vice-versa!
Eu tenho que usar o Try Catch em formulários com mais de uma textBox.
Obrigado pela atenção André!
Abraço!
Matheus
Se me permite, existe uma maneira bem simples de achar um dígito ou um alfanumérico numa string
usando LINQ
try { string str = seuTextBox.Text; int result = (from c in str where char.IsDigit(c) select c).Count(); if (result > 0) throw new Exception("Não são permitidos números. Favor digitar apenas letras"); } catch(Exception ex) { MessageBox.Show(ex.Message); } finally { seuTextBox.Clear(); }
A expressão acima vai procurar em cada caracter da string por um dígito, se encontrar, retornará o número de ocorrencias na variavel inteira result.
Se result > 0, existem números
Se result = 0, não existem números
[]s
- Marcado como Resposta matheus-szmodic sexta-feira, 1 de abril de 2011 00:58
-
-