cs_Sipat
Messages postés71Date d'inscriptionmardi 26 octobre 2004StatutMembreDernière intervention15 avril 2007
-
8 févr. 2007 à 10:16
cs_Sipat
Messages postés71Date d'inscriptionmardi 26 octobre 2004StatutMembreDernière intervention15 avril 2007
-
8 févr. 2007 à 14:54
Bonjour à tous d'un débutant,
Je n'arrive pas à traduire le code suivant en code VB.NET 2003
Private Sub Text14_KeyPress(KeyAscii As Integer)
' 8 = TOUCHE RET ARR ; 46 TOUCHE POINT DECIMAL ;44 TOUCHE VIRGULE
If KeyAscii <> 8 And (KeyAscii < 48 Or KeyAscii > 57) Then
If KeyAscii = 44 Then
If InStr(1, Text14.Text, ",") Then KeyAscii = 0
ElseIf KeyAscii = 46 Then
If InStr(1, Text14.Text, ",") Then
KeyAscii = 0
Else
KeyAscii = 44
End If
Else
KeyAscii = 0
End If
End If
End Sub
Ce petit code autorise seulement le clavier numerique, il autorise aussi le retour arriere et redetermine la touche clavier numerique 46 (le point) par la touche virgule(44) il evite dans la TextBox que le chiffre commence par une virgule.
Je pense que j'ai rien oublier... ah si
Merci pour votre aide.
A bientôt j'espére.
hvb
Messages postés939Date d'inscriptionvendredi 25 octobre 2002StatutMembreDernière intervention27 janvier 20093 8 févr. 2007 à 14:10
Heu... je viens de retester, en copiant collant ton code au cas où tu aurais fait une erreur de recopiage , et ça marche.
J'ai juste remarqué un soucis, c'est que j'avais oublié de replacer la selection de la textbox à la fin du texte, lors de l'accés à celui ci.
Change donc ça :
Else
e.Handled =
True
Text16.Text += Chr(44)
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 8 févr. 2007 à 11:57
Regarde si ceci te convient :
Je l'ai fais avec VB2005, mais je pense que ça passe aussi avec VB2003
Private Sub Text14_KeyPress(ByVal sender As Object, ByVal e
As System.Windows.Forms.KeyPressEventArgs) Handles
Text14.KeyPress
If e.KeyChar <> Microsoft.VisualBasic.ChrW(8) And Not
Char.IsDigit(e.KeyChar) Then
If e.KeyChar = ","c Then
If Text14.Text.IndexOf(","c, 0) >= 0 Then e.Handled = True
ElseIf e.KeyChar = "."c Then
If Text14.Text.IndexOf(","c, 0) >= 0 Then
e.Handled = True
Else
e.KeyChar = ","c
End If
Else
e.Handled = True
End If
End If
End Sub
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
cs_Sipat
Messages postés71Date d'inscriptionmardi 26 octobre 2004StatutMembreDernière intervention15 avril 2007 8 févr. 2007 à 13:44
Bonjour et merci de vos réponses,
Pour Casy ça bloque à e.KeyChar = ","c 'La propriété "KeyChar" et ReadOnly'
Pour hvb pas d'erreur mais j'arrive à inscrire plusieurs point à la suite au lieu d'une seule virgule ! donc ne fonctionne pas. Normalement quand j'appuis sur le point il devrait avoir une virgule pas de point et qu'une seule.
Private
Sub Text16_KeyPress(
ByVal sender
As
Object,
ByVal e
As System.Windows.Forms.KeyPressEventArgs)
Handles Text16.KeyPress
If Asc(e.KeyChar) <> 8
And (Asc(e.KeyChar) < 48
Or Asc(e.KeyChar) > 57)
Then
If Asc(e.KeyChar) = 44
Then
If Text16.Text.IndexOf(",") >= 0
Then e.Handled =
True
ElseIf Asc(e.KeyChar) = 46
Then
If Text16.Text.IndexOf(",") >= 0
Then
e.Handled =
True
Else
e.Handled =
True
Text16.Text += Chr(44)
'e.KeyChar = Chr(44)
End
If
Else
e.Handled =
True
End
If
End
If
Merci pour votre aides j'en n'ai encore besoin !
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Sipat
Messages postés71Date d'inscriptionmardi 26 octobre 2004StatutMembreDernière intervention15 avril 2007 8 févr. 2007 à 14:54
Bonjour,
Je viens de faire un autre projet et bien... ça fonctionne mais pas dans mon projet que je veux mettre à jour ! enfin il faut peut-être que je change tous les TextBox(s) par ce qu'il inter-agisse avec Text16_TextChanged
Exp.: quand j'efface avec retour arriere j'efface aussi le texte des autres TextBox(s) il va peut-être que je revois le code!
voilà ce qu'il y a :
Private
Sub Text16_TextChanged(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Text16.TextChanged
If Len(Text16.Text) < 1
Then
Exit
Sub
Text16.Text = Trim(Text16.Text)
'enleve les espaces droite et gauche
If Mid(Text16.Text, 1, 1) = ","
Then Text16.Text = ""