none
Duvida de como usar o Try Catch em uma ou mais TextBox (desktop) RRS feed

  • Pergunta

  • Olá, sou iniciane em C#.NET e tenho duvida de como usar o Try Catch, Finally em uma ou mais TextBox.

    Agradeço muio se alguém puder me dar um exemplo de como fazer!

    quinta-feira, 31 de março de 2011 20:06

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
    sexta-feira, 1 de abril de 2011 00:17

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
    quinta-feira, 31 de março de 2011 20:11
    Moderador
  • 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


    quinta-feira, 31 de março de 2011 20:17
  • 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!

    quinta-feira, 31 de março de 2011 22:19
  • 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
    sexta-feira, 1 de abril de 2011 00:17
  • 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
    sexta-feira, 1 de abril de 2011 00:17
  • Eduardo muuuuiiiito obrigado pelo exemplo, funcionou perfeitamente!

    Realmente gostei do exemplo, por utilizar LINQ

    Abração!!!

    sexta-feira, 1 de abril de 2011 00:57
  • http://secretsmind.blogspot.com/2011/04/convertendo-datas-e-numeros.html

    Use sempre Int.TryParse() para verificar números.


    Quem sabe um dia os DataSets se extinguirão?
    terça-feira, 5 de abril de 2011 02:19