Inquiridor
Validação de entrada

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...
- Editado tracaja sexta-feira, 1 de dezembro de 2017 17:47
- Tipo Alterado Filipe B CastroModerator sexta-feira, 1 de dezembro de 2017 18:43 how to
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"); } }
-
-
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