VB .NET - TextBox : permitindo a entrada somente de números ou de letras
Nesta dica eu vou mostrar como efetuar uma tarefa muito simples. Na verdade serão duas tarefas :
Vamos matar dois coelhos de uma vez criando em um módulo as duas funções que fazem este serviço. Depois vamos chamar as funções no evento KeyPress do controle TextBox para o qual desejamos efetuar a validação. Vamos lá...
1 - Inicie um novo projeto no Visual Studio.NET com as seguintes características (sinta-se a vontade para alterar a seu gosto.)
2- Inclua um módulo na sua aplicação no menu Project | Add Module - informando o nome ValidaTextBox.vb para o módulo. A seguir insira o código das funções : soLetras e soNumeros conforme abaixo:
Module ValidaTextBox
Function SoLETRAS(ByVal KeyAscii As Integer) As Integer 'Transformar letras minusculas em Maiúsculas KeyAscii = Asc(UCase(Chr(KeyAscii))) ' Intercepta um código ASCII recebido e admite somente letras If InStr("AÃÁBCÇDEÉÊFGHIÍJKLMNOPQRSTUÚVWXYZ", Chr(KeyAscii)) = 0 ThenSoLETRAS = 0 Else SoLETRAS = KeyAscii End If ' teclas adicionais permitidas If KeyAscii = 8 Then SoLETRAS = KeyAscii ' BackspaceIf KeyAscii = 13 Then SoLETRAS = KeyAscii ' EnterIf KeyAscii = 32 Then SoLETRAS = KeyAscii ' Espace End Function
Function SoNumeros(ByVal Keyascii As Short) As ShortIf InStr("1234567890", Chr(Keyascii)) = 0 ThenSoNumeros = 0 Else SoNumeros = Keyascii End If
Select Case Keyascii Case 8 SoNumeros = Keyascii Case 13 SoNumeros = Keyascii Case 32 SoNumeros = Keyascii End Select End Function
End Module |
Agora no formulário padrão - form1.vb - insira duas caixas de texto - TextBox1 e TextBox2 e duas Labels .
No evento KeyPress de TextBox1 insira o código abaixo que irá permitir a digitação só de letras no controle. Faremos isto invocando a função soLetras definida no módulo acima:
Private
Sub
TextBox1_KeyPress(ByVal
sender As
Object,
ByVal e
As System.Windows.Forms.KeyPressEventArgs)
Handles
TextBox1.KeyPress Dim KeyAscii As Short = CShort(Asc(e.KeyChar)) KeyAscii = CShort(SoLETRAS(KeyAscii)) If KeyAscii = 0 Then e.Handled = True End If End Sub |
No evento KeyPress de TextBox2 insira o código abaixo que irá permitir a digitação só de números no controle. Faremos isto invocando a função soNumeros definida no módulo acima:
Private
Sub
TextBox2_KeyPress(ByVal
sender As
Object,
ByVal e
As System.Windows.Forms.KeyPressEventArgs)
Handles
TextBox2.KeyPress Dim KeyAscii As Short = CShort(Asc(e.KeyChar)) KeyAscii = CShort(SoNumeros(KeyAscii)) If KeyAscii = 0 Then e.Handled = True End If End Sub |
Pronto !!! agora é só executar e testar.
Por hoje é só , aguarde mais dicas VB.NET...
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
|
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências: