VERIFICAR SE A DIGITACAO EM UM TEXTBOX E NUMERICA

ELMO01 14/07/2011 08:49:23
#379108
Bom dia a todos,

Como faço para que um textbox só aceite numeros.

Obrigado,
PEGUDO 14/07/2011 08:55:00
#379110
No KeyPress, coloque

[txt-color=#0000f0]Select Case[/txt-color] e.KeyChar
[txt-color=#0000f0]Case[/txt-color] Chr(48) [txt-color=#0000f0]To[/txt-color] Chr(57)
[txt-color=#007100][ô]Código a ser executado[/txt-color]
[txt-color=#0000f0]Case Else[/txt-color]
e.Handled = [txt-color=#0000f0]True[/txt-color] [txt-color=#007100][ô]Ou False não lembro direito rsrsrsr[/txt-color]
[txt-color=#0000f0]End Select[/txt-color]
ELMO01 14/07/2011 09:06:57
#379112
PEGUDO - valeu a dica mas quando teclo a virgula, me retorna a mensagem que coloquei como aviso, como faço para retirar isto???

Obrigado,
PEGUDO 14/07/2011 09:12:56
#379113
você quer que a vírgula apareça não é?

[txt-color=#0000f0]Case[/txt-color] Chr(48) [txt-color=#0000f0]To[/txt-color] Chr(57), Chr(44)
PROGRAMADORVB6 14/07/2011 11:41:46
#379128
Olá colega.
Experimente este código :

 Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If Not Char.IsDigit(e.KeyChar) And _
Not Convert.ToInt32(e.KeyChar) = Keys.Back And _
Not Convert.ToInt32(e.KeyChar) = Keys.Delete And _
Not Convert.ToInt32(e.KeyChar) = Keys.Enter And _
Not Convert.ToInt32(e.KeyChar) = 44 Then
e.Handled = True
End If
End Sub


Até+
Programadorvb6
PROGRAMADORVB6 14/07/2011 16:59:15
#379190
Vou enviar um exemplo um pouco + Elaborado.

Form :

Public Class Form1
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
soNumerosEUMAVirgulaNoKeyDown(TextBox1, e)
End Sub
Private Sub TextBox2_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox2.KeyDown
soLetrasVirgulasEPontosNoKeyDown(TextBox2, e)
End Sub
End Class



Módulo :

 Module Geral
Sub soLetrasVirgulasEPontosNoKeyDown(ByVal txtbox As TextBox, ByVal e As System.Windows.Forms.KeyEventArgs)
Select Case e.KeyCode
Case Keys.A To Keys.Z, Keys.Escape, Keys.Up, Keys.Down, Keys.Left, _
Keys.Right, Keys.Back, Keys.Tab, Keys.ControlKey, Keys.ShiftKey, _
Keys.Menu, Keys.LWin, Keys.RWin, Keys.Home, Keys.End, Keys.Delete, _
Keys.Insert, Keys.PageDown, Keys.PageUp, Keys.PrintScreen, _
Keys.NumLock, Keys.CapsLock, Keys.Scroll, Keys.Decimal, _
Keys.Oemcomma, Keys.OemPeriod [ô] ...,
Case Keys.Enter
e.SuppressKeyPress = True
SendKeys.Send([Ô]{TAB}[Ô])
Case Else
e.SuppressKeyPress = True
End Select
End Sub
Sub soNumerosEUMAVirgulaNoKeyDown(ByVal txtbox As TextBox, ByVal e As System.Windows.Forms.KeyEventArgs)

Select Case e.KeyCode
Case Keys.D0 To Keys.D9, Keys.NumPad0 To Keys.NumPad9, Keys.Escape, _
Keys.Up, Keys.Down, Keys.Left, Keys.Right, Keys.Back, Keys.Tab, _
Keys.ControlKey, Keys.ShiftKey, Keys.Menu, Keys.LWin, Keys.RWin, _
Keys.Home, Keys.End, Keys.Delete, Keys.Insert, Keys.PageDown, _
Keys.PageUp, Keys.PrintScreen, Keys.NumLock, Keys.CapsLock, Keys.Scroll [ô] ...,


Case 188 [ô] .
[ô]Caso so queira que se repita uma vez no string o caracter : ,
[ô]e.SuppressKeyPress = txtbox.Text.Contains([Ô],[Ô])
txtbox.Text.Contains([Ô],[Ô]) [ô] nº de Virgulas ilimitadas
Case 190 [ô] .
[ô]Caso so queira que se repita uma vez no string o caracter : .
[ô] e.SuppressKeyPress = txtbox.Text.Contains([Ô].[Ô])
txtbox.Text.Contains([Ô].[Ô]) [ô] Nº de pontos ilimitados
Case 189 [ô] -
e.SuppressKeyPress = (txtbox.Text <> Nothing) AndAlso (txtbox.SelectionStart > 0 Or txtbox.Text(0) = [Ô]-[Ô])
Case Keys.Enter
e.SuppressKeyPress = True
SendKeys.Send([Ô]{TAB}[Ô])
Case Else
e.SuppressKeyPress = True
End Select

If e.SuppressKeyPress Then Beep()
End Sub
End Module


Até+
ProgramadorVB6
FEDERHEN 14/07/2011 17:49:09
#379200
Resposta escolhida
Private Sub NomeDoCampo_KeyPress(KeyAscii As Integer)
If KeyAscii <> 8 Then
If InStr([Ô]0123456789,.[Ô], Chr(KeyAscii)) = 0 Then [ô] << coloque aqui os caracteres que deseja aceitar
KeyAscii = 0
End If
End If
End Sub
Tópico encerrado , respostas não são mais permitidas