ThoT49
Messages postés153Date d'inscriptiondimanche 4 mars 2007StatutMembreDernière intervention24 avril 2011
-
1 sept. 2007 à 00:46
ThoT49
Messages postés153Date d'inscriptiondimanche 4 mars 2007StatutMembreDernière intervention24 avril 2011
-
1 sept. 2007 à 12:32
Bonsoir, j'aimerais éliminer les lettres dans mes textbox pour éviter que cela affiche un méssage d'érreur lorsque l'on tappe une lettre dans une textbox qui ne doit accepter que les chiffres...
En gros je voudrais que lorsque je tappe une lettre dans la textbox cela la suprime directement puis j'afficherais un message disant de ne pas tapper des lettres.
cs_christoni
Messages postés140Date d'inscriptionmardi 25 novembre 2003StatutMembreDernière intervention 1 novembre 20107 1 sept. 2007 à 10:47
Bonjour,
Si tes textbox ne doivent accepter que des chiffres, le code suivant fonctionne bien.
(Par contre si elles doivent accepter aussi des séparateurs décimaux, c'est plus compliqué.)
Tu peux déjà attribuer un tag identique à tous les textbox concernées, afin de les différencier des autres, puis les abonner à l'événement « KeyPress » dans ton form_load :
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles Me.Load
'*** Pour chaque textBox du formulaire, ayant un tag = tbNbre
' - on demande un alignement à droite
' - on lui associe une routine à chaque pression sur une touche du
' clavier.
Dim txtbox As Control
For Each txtbox In Me.Controls
If TypeOf (txtbox) Is TextBox And txtbox.Tag Is ("tbNbre") Then
'*** "TextAlign" n'étant pas un membre de "Control", il faut
' redéfinir à ce stade, "TextBox" comme un textBox.
Dim txt As TextBox = CType(txtbox, TextBox)
txt.TextAlign = HorizontalAlignment.Right
AddHandler txtbox.KeyPress, AddressOf tbKpress_KeyPress
End If
Next
End Sub
Puis le traitement de l'événement :
Private Sub tbKpress_KeyPress(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs)
If Char.IsNumber(e.KeyChar) = False Then
e.KeyChar = CChar("")
MessageBox.Show("Entrez un nombre")
End If
End Sub