none
Validação de entrada RRS feed

  • Discussão Geral

  • Estou fazendo um programa pra matematica financeira na faculdade, usando o windows forms, c#.

    Tem um tabcontrol com várias pages, cada page fará uma operação.

    Cada page tem vários textbox, que serao preenchidos e depois clica o botao de calcular, que faz os calculos em double.

    Como faço pra impedir que o usuário digite letras nos campos de uma vez só? pensei num funcao global de validacao, e chamaria essa função tabcontrol_selecteditem.

    Não estou conseguindo escrever isso...

    tentei implementar da mesma forma que o limpar usando um foreach control c in ctrl.controls....mas não estou conseguindo...


    sexta-feira, 1 de dezembro de 2017 15:37

Todas as Respostas

  • quero usar isso:

    private void TXTMontante_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != ','))
        {
            e.Handled = true;
            MessageBox.Show("este campo aceita somente numero e virgula");
        }
        if ((e.KeyChar == ','&& ((sender as TextBox).Text.IndexOf('.'> -1))
        {
            e.Handled = true;
            MessageBox.Show("este campo aceita somente uma virgula");
        }
    }
    

    sábado, 2 de dezembro de 2017 21:39
  • mas quero transformar numa função global, daí vai servir em todos os textbox, dá pra fazer isso? eu não sei como...

    sábado, 2 de dezembro de 2017 21:46
  • Olá!

    Sim.. Você pode colocar o código desse método como "public static" em uma classe estática, aí você pode utilizá-lo para qualquer TextBox que você quiser..

    Digamos que você coloque em uma classe chamada "Validacoes" e que você chame esse método de "ValidaTextBox".. Você poderia, no construtor do formulário, fazer um foreach pelos controles e configurar essa validação em todos os TextBox.. Exemplo:

                foreach (var controle in this.Controls)
                {
                    var textBox = controle as TextBox;
                    if (textBox != null)
                    {
                        textBox.KeyPress += Validacoes.ValidaTextBox;
                    }
                }
    

    Abraço!


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima

    terça-feira, 5 de dezembro de 2017 11:05
    Moderador