Admettons que vous ne devez accepter dans un contrôle TEXTBOX
uniquement des chiffres et le séparateur décimal, cette instruction
toute simple, n 'acceptera que les valeurs indiquées dans l'instruction LIKE
(instruction SQL ).
Source / Exemple :
Private Sub Text1_KeyPress(KeyAscii As Integer)
If Not Chr(KeyAscii) Like "[0123456789.]" Then KeyAscii = 0
End Sub
Conclusion :
Comme vous avez pu le remarquer le code se place dans l'événement KeyPress du contrôle TEXTBOX...
13 févr. 2010 à 20:04
Je suis en VB.net 2008
Si je prend le code tel qu'elle j'ai des erreurs
J'ai nommer mon TxtBox en txtNumber J'ai declarrer des variables vbKeyDelete et vbKeyBack en integer
Lorsque je crée un évènement KeyDown et Keypress
J'ai :
Private Sub txtNumber_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtNumber.KeyDown
End Sub
et
Private Sub txtNumber_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtNumber.KeyPress
End Sub
Si 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
22 mars 2008 à 17:12
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 If
End Sub
Private 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 If
End Sub
Y'a surement plus propre et ect... mais bon. Personne je m'occupe des dates donc pas besoin de gérer le point.
27 janv. 2004 à 13:49
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 Select
End Sub
27 janv. 2004 à 13:30
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à ;-)
12 avril 2003 à 11:52
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.