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.)

  1. Project Types : Visual Basic Projects
  2. Templates : Windows Application
  3. Name : ValidaTextBox
  4. Location : c:\vbnet\ValidaTextBox

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 Then

         SoLETRAS = 0

     Else

         SoLETRAS = KeyAscii

      End If

 

   ' teclas adicionais permitidas

    If KeyAscii = 8 Then SoLETRAS = KeyAscii ' Backspace

    If KeyAscii = 13 Then SoLETRAS = KeyAscii ' Enter

    If KeyAscii = 32 Then SoLETRAS = KeyAscii ' Espace

End Function

 


 

   Function SoNumeros(ByVal Keyascii As Short) As Short

     If InStr("1234567890", Chr(Keyascii)) = 0 Then

        SoNumeros = 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:


José Carlos Macoratti