TEXTBOX APENAS NUMEROS

ERLANMG 14/05/2013 16:50:11
#423466
Caros colegas, boa tarde!

Estou com o seguinte problema:

Estou tentando usar uma função para restringir nos textbox apenas números e também uso uma rotina para formatar o textbox para moeda.

Como uso a função para aceitar somente números, não consigo colocar virgula no estilo moeda e se não uso a função somente números estou sujeito a ter dor de cabeça no futuro.

Segue abaixo função e rotinas:

Gostaria a opinião de voces como devo resolver este problema ou então uma outra forma de usar estilo moeda.

#Region [Ô]SOMENTE NUMEROS[Ô]
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 Region

Private Sub txtOutros_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtOutros.KeyPress
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
KeyAscii = CShort(SoNumeros(KeyAscii))
If KeyAscii = 0 Then
e.Handled = True
End If
End Sub

Private Sub txtOutros_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtOutros.Leave
If txtOutros.Text = String.Empty Then
txtOutros.Text = 0
Else
txtOutros.Text = FormatCurrency(txtOutros.Text, 2, TriState.True, TriState.True,
TriState.True).Replace([Ô]R$[Ô], [Ô][Ô]).Trim
End If
End Sub


Desde já agradeço pela atenção.

Abraços.
FELLIPEASSIS 14/05/2013 20:21:23
#423486
Resposta escolhida
aqui formata moeda moeda
aqui formata para aceitar nº nº
PEGUDO 15/05/2013 07:41:51
#423499
O MaskedTextBox não seria útil?
ERLANMG 15/05/2013 08:49:36
#423504
Obrigado a todos pela ajuda, através da tabela ASCII foi liberado somente algumas teclas de comando, as teclas numéricas e a virgula.

If (Asc(e.KeyChar) > 20) And ((Asc(e.KeyChar) < 48 Or Asc(e.KeyChar) > 57)) And (Asc(e.KeyChar) <> 44) Then
e.Handled = True
End If


Mais uma vez obrigado a todos.

Tópico encerrado , respostas não são mais permitidas