TEXTBOX ACEITA APENAS NUMEROS E HIFEN

KELVINCD 28/01/2013 11:57:40
#418185
Boas galera.
Gostaria de bloquear quase todos os caracteres especiais ou permitir somente o hífen.
testei alguns códigos que encontrei aqui no vbmania mas ai da erro na instrução [txt-color=#e80000]Handles[/txt-color]

Ex: tentei utilizar este comando para bloquear um caractere.
Da uma msg de erro assim:
Compile error; user-defined type not defined
utilizo vb6

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
Handles TextBox1.KeyPress
If e.KeyChar = [Ô]/[Ô] Then
e.Handled = True
End If
End Sub

Se souber de algum comando que permita somente números e hífen ajuda. vlw
MARCELO.TREZE 28/01/2013 12:14:36
#418188
Resposta escolhida
em um módulo

Public Sub ApenasNrs(ByRef KeyAsc As Integer)
Select Case KeyAsc
[ô]Se a tecla for numérica (0 - 9) ,backspace (8) ou hifen(-)
Case asc([Ô]0[Ô]) To asc([Ô]9[Ô]), 8, asc([Ô]-[Ô])
Case Else
Beep [ô]Som de erro, nao é necessário
KeyAsc = 0 [ô]Cancela a entrada
End Select
End Sub


no key press do textbox

Private Sub Text1_KeyPress(KeyAscii As Integer)
ApenasNrs KeyAscii
End Sub



ALEVALE 28/01/2013 12:18:22
#418189
Vixi......faz tempo que tinha isso tinha uma função que era [Ô]bala[Ô] rsrsrs procurava conforme digitado na combobox...etc.....
Mas já foi..

Tenta isso:
Private Sub Textbox1_KeyPress(index As Integer, KeyAscii As Integer)
[ô]Accepts only numeric input
Select Case KeyAscii
Case vbKey0 To vbKey9
Case vbKeyBack, vbKeyClear, vbKeyDelete
Case vbKeyLeft, vbKeyRight, vbKeyUp, vbKeyDown, vbKeyTab
Case Else
KeyAscii = 0
Beep
End Select
End Sub


http://www.vbforums.com/showthread.php?350067-VB-Numeric-Textbox-input-only
ALEVALE 28/01/2013 12:20:05
#418190
http://www.dreamincode.net/forums/topic/15368-numbers/

Private Sub Text1_KeyPress(KeyAscii As Integer)
[ô]Check the value of KeyAscii
If KeyAscii <> 8 Then
[ô]Now use Instr to check if the text being entered contains any
[ô]one of the numbers listed. If a 0 is returned
[ô]then no numeric values were found, so set KeyAscii to
[ô]0 so no text is inserted into the textbox
If InStr([Ô]0123456789[Ô], Chr(KeyAscii)) = 0 Then KeyAscii = 0
End If
End Sub
LUIZCOMINO 28/01/2013 14:06:14
#418205
Function Aceita(KeyAscii As Integer, ListaPermitidos As String) As Integer
Dim i As Integer

For i = 1 To Len(ListaPermitidos)
If KeyAscii = asc(Mid(ListaPermitidos, i, 1)) Then
Aceita = KeyAscii
Exit Function
End If
Next
Aceita = 0
End Function

Para usar basta colocar a lista de permitidos

Private Sub Text1_KeyPress(KeyAscii As Integer)
KeyAscii = Aceita(KeyAscii, [Ô]0123456789[Ô])
End Sub
KELVINCD 28/01/2013 14:33:07
#418209
Vlw galera tenso ter que escolhe uma mas todas funcionam.
Tópico encerrado , respostas não são mais permitidas