Private Sub Text1_KeyPress(KeyAscii As Integer) If Not Chr(KeyAscii) Like "[0123456789.]" Then KeyAscii = 0 End Sub
Pas grave il suffit d'autoriser les touches backspace et ret. arr. comme suit :Private Sub Text1_KeyPress(KeyAscii As Integer)If Not Chr(KeyAscii) Like "[0123456789.]" Or Keyascii<>toto Then KeyAscii = 0 où toto est le code du backspace par ex. , euh je me souviens plus le code :) (46 peut être)
Simple et efficace.
pas mieux !
Pas mal !!! Je ne connaissais pas !Merci de l'astuce (du coup je remonte ta note car depuis le temps que je code en VB je l'avais jamais vu celle-là ;-)
Petite participation (merci à toi, je rends à César...) :Pour éviter la double saisie du caractère décimal (. ou ,) :Private Sub Text1_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case 46, 44 ' 46 -> . | 44 -> , If InStr(Text1.Text, ",") > 0 Or InStr(Text1.Text, ".") > 0 Then KeyAscii = 0 Case Else If Not Chr(KeyAscii) Like "[0-9,.]" And KeyAscii <> Asc(vbBack) Then KeyAscii = 0 End SelectEnd Sub
4 ans après ...Private Sub txtNumber_KeyDown(KeyCode As Integer, Shift As Integer) If (KeyCode = vbKeyDelete) Then If Len(txtNumber) < 2 Then txtNumber.Text = "0" KeyCode = 0 End If End IfEnd SubPrivate Sub txtNumber_KeyPress(KeyAscii As Integer) If (KeyAscii = vbKeyBack) Then If Len(txtNumber) < 2 Then txtNumber.Text = "0" KeyAscii = 0 End If Else If Not Chr(KeyAscii) Like "[0123456789.]" Then KeyAscii = 0 ElseIf Chr(KeyAscii) = "." Then If InStr(txtNumber, ".") Then KeyAscii = 0 End If End If End IfEnd SubY'a surement plus propre et ect... mais bon. Personne je m'occupe des dates donc pas besoin de gérer le point.
Bonjour à vous, Pourriez vous indiquer comment mettre en application votre code car j'en aurai bien besoin et je bloque.Je suis en VB.net 2008Si je prend le code tel qu'elle j'ai des erreursJ'ai nommer mon TxtBox en txtNumber J'ai declarrer des variables vbKeyDelete et vbKeyBack en integerLorsque je crée un évènement KeyDown et KeypressJ'ai : Private Sub txtNumber_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtNumber.KeyDown End Subet Private Sub txtNumber_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtNumber.KeyPress End SubSi je le change rien ne se passe. Je suppose qu'il faut que j'utilise l'un des arguments passé dans la fonction, merci de m'eclairer
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte
1 873 525 membres 53 nouveaux aujourd'hui 16 151 membres club