Le premier site francophone dédié au développement Pocket PC


Comment contrôler la saisie dans un TextBox eVB ?
 
   

 

Si vous voulez contrôler tout ce qui est saisi dans un TextBox, cet article est fait pour vous. Mais il faut, pour que tout se passe bien, connaitre le fonctionnement et quelques comportements bizarres du contrôle TextBox de eVB.

Le contrôle TextBox

Le contrôle TexBox permet à l'utilisateur de saisir des informations textuelles. Pour le programmeur, il n'y a aucune ligne de code à taper pour que la saisie soit possible. Nous n'avons qu'à régler quelques propriétés du TextBox, à utiliser quelques méthodes, et à répondre à quelques événements pour que la saisie se passe exactement comme nous le souhaitons. Mais avec eVB, tout n'est pas toujours simple et parfois, le comportement des contrôles est différent de ce que la documentation affirme.

Propriété MaxLength

MaxLength est une propriété qui contrôle le nombre de caractères maximum saisissables. Cette propriété fonctionne très bien, et bloque la saisie dès que l'on veut dépasser le nombre de caractères maximum stipulés, sauf que si vous affectez un texte plus long que MaxLength à la propriété Text, le TextBox affiche tous (bug bug bug), méfiez-vous !

Propriété PasswordChar

Cette propriété permet de ne pas afficher ce que l'utilisateur saisit en remplaçant tous les caractères saisis par celui stipulé par PasswordChar (c'est vraiment très pratique).

Les évenements sont nos amis

Pour contrôler complètement ce que l'utilisateur saisit, nous devons nous intercaller entre le clavier et la zone de saisie. Les événements générés par le TextBox sont là pour ça.

Evénement KeyPress

Cet événement est généré lorsque l'utilisateur tape sur une touche qui génère un caractère ascii (presque toutes les touches du clavier). Lorsque cet événement est déclenché, le caractère tapé au clavier n'est pas encore ajouté à la zone de saisie. La définition de l'événement KeyPress n'est pas correcte car le paramètre KeyAscii qui correspond au caractère tapé, est passé par valeur (ByVal) ce qui interdit sa modification, donc toute prise de contrôle sur le TextBox. Pour que celà marche, il faut remplacer le ByVal par ByRef, ce qui nous permet de modifier KeyAscii dans l'événement :

Déclaration standard eVB de KeyPress (on suppose que le TextBox se nomme Text1)

Private Sub Text1_KeyPress(ByVal KeyAscii As Integer)

A remplacer par

Private Sub Text1_KeyPress(ByRef KeyAscii As Integer)

Exemple : Forcer tous les caractères tapé en majuscule

Private Sub Text1_KeyPress(ByRef KeyAscii As Integer)
KeyAscii = Asc(Ucase(Chr(KeyAsciii)))
End Sub

Voilà, une fois qu'on a contourné quelques petites erreurs de jeunesse de eVB, on peut exercer avec le TextBox un contrôle complet sur ce que l'utilisateur saisit.

 

Stéphane Sibué

 

 
       
   
 
   
Copyright 2001-2004 - Tous droits réservés
 
   

iPAQ est un produit de COMPAQ.
Visual Tools est un produit de Microsoft Corporation.
Toutes les autres marques et produits présents dans ces pages sont la propriété exclusive de leurs sociétés respectives.