Hoje irei mostrar alguns modos existentes de programar o seu Textbox para aceitar apenas valores permitidos por você programador.
Todas as funções citadas devem ser colocadas no Evento KEYPRESS do TextBox (:
Modo de programar o Textbox para aceitar valores definidos na função
Modo de programar para aceitar apenas LETRAS
Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e AsSystem.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If Char.IsDigit(e.KeyChar) Then
e.Handled = True
End If
End sub
Explicação da técnica
Private Sub TextBox1_KeyPress
Colocamos dentro deste evento uma verificação para ver SE o que foi digitado é uma Letra
If Char.IsDigit(e.KeyChar) Then
e.Handled = True
Modo de programar para aceitar apenas NÚMEROS
Private Sub TextBox1_KeyPress(ByVal sender AsSystem.Object, ByVal e AsSystem.Windows.Forms.KeyPressEventArgs)Handles TextBox1.KeyPress
If Asc(e.KeyChar) = 8 Then
Exit Sub
End If
If Not Char.IsDigit(e.KeyChar) Then
e.Handled = True
End If
End Sub
A primeira parte nós já sabemos o que é e como funciona, vamos para a segunda
If Asc(e.KeyChar) = 8 Then
Exit Sub
End If
Aqui nada mais temos que uma Verificação de que se a Tecla pressionada foi o BACKSPACE,Caso a tecla pressionada for = BACKSPACE então ele sai da Rotina
Para compreender melhor, veja essa tabela com todos os caracteres e seus números correspondentes na tabela ascii
Aproveite e utilize a tabela para criar regras novas, Programar é criar.
If Not Char.IsDigit(e.KeyChar) Then
e.Handled = True
End If
O uso do NOT vai inverter o valor lógico devolvido, Exemplo
If 10 = 10 Then
'O RESULTADO DESTE IF SERÁ TRUE
End If
If NOT 10=10 Then
'O RESULTADO DESTE IF SERÁ FALSE
End If
Explicação: o NOT inverte o valor lógico devolvido, 10 é igual a 10 (TRUE) o NOT transforma esse TRUE em FALSE.
PARA QUE ISSO?
Simples, SE NÃO FOR VERDADE QUE É UMA LETRA ( OU SEJA, É UM NÚMERO ) ENTÃO
permita a digitação
e.Handled = True
Links adicionais para estudos.
Espero que eu tenha conseguido passar o que eu aprendi aqui para vocês.
Qualquer dúvida é só comentar ou poste a sua dúvida nos fóruns da Microft Visual Basic.net ou C#, eu visito os fóruns com frequência para tentar ajudar quem tem dúvida.