Ir para conteúdo
Fórum Script Brasil
  • 0

Somente Numeros No Textbox


kuroi

Pergunta

Esse código vai garantir que apenas seja permitido valor numérico no TextBox. Ele vai impedir que mais de uma vírgula seja digitada e transformará ponto em virgúla:

- Antes de tudo, ponha a propriedade KeyPreview do seu formulario = True.

- No evento KeyPress do seu TextBox, copie o seguinte código:

Private Sub Text1_KeyPress(KeyAscii As Integer)
    If KeyAscii = 46 Then KeyAscii = 44
    If KeyAscii = 44 And InStr(Text1.Text, ",") <> 0 Then
        KeyAscii = 0
        Exit Sub
    End If
    If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> 8 And KeyAscii <> 44 Then
        KeyAscii = 0
    End If
End Sub[/code] Onde Text1 é o nome do seu TextBox. Obviamente, você deve alterar para o nome correto. Para permitir somente números inteiros no TextBox, o código seria simplesmente assim:
[code]Private Sub Text1_KeyPress(KeyAscii As Integer)
    If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> 8 Then
        KeyAscii = 0
    End If
End Sub

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Ola, olha eu tentei usar este codigo no meu projecto estou a usar o vb.net 2005 , mas em mim não funciona da erro em

"KeyAscii" é como se fosse uma variavel não declarada . podes me ajudar?

Obrigado

Um abraço

Kuroi! , já consegui que não de desse erro ,

só que agora não me faz nada dentro da text box, ou seja deixa escrever caracteres livremente... :mellow:

obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

esse código é pra Visual Basic 6. o 2005 é uma das versoes do .NET, não tem nenhuma relacao com esse codigo q eu passei.

pra postar sobre o 2005 use essa sala aqui: http://scriptbrasil.com.br/forum/index.php?showforum=49

mas no 2005, o evento KeyPress deve ter os parametros sender e e. ai você pegando pelo e.KeyChar é o mesmo q o KeyAscii do codigo acima.

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado kuroi valeu!

eu entretanto descobri um que resolve no vb.2005

no evento textchanged.

de qualquer das formas um grande obrigado

Private Sub txtnif_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtnif.TextChanged
        If IsNumeric(txtnif.Text) = False Then
            txtnif.Text = ""
            Beep()
        End If
    End Sub

Editado por kuroi
Adicionar Tag CODE
Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Anubis --

Por Acaso queira uma outra forma

Private Sub TxtBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtBox1.KeyPress

If e.KeyChar = Chr(46) Then e.KeyChar = Chr(44)

If e.KeyChar = Chr(44) And InStr(TxtCntDateRecb.Text, ",") <> 0 Then

e.KeyChar = Chr(0)

Exit Sub

End If

If (e.KeyChar < Chr(48) Or e.KeyChar > Chr(57)) And e.KeyChar <> Chr(8) And e.KeyChar <> Chr(44) Then

e.KeyChar = Chr(0)

End If

End Sub

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Leandro --

Assim:

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress

If Not Char.IsLetter(e.KeyChar) And Not e.KeyChar = vbBack And Not e.KeyChar = "." And Not e.KeyChar = "," Then

e.Handled = True

End If

End Sub

:rolleyes:

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...