|
|
|||||||||||
|
Nous allons donc modifier le style du Textbox qui ne doit accepter que des chiffres.
Pour modifier le style d'un contrôle, il faut tout d'abord récupérer son style actuel en utilisant la fonction "GetWindowLong" de la librairie "Coredll" avec comme paramètre "nIndex" la constante GWL_STYLE, puis lui ajouter (avec l'opérateur OR) la constante de style que l'on veut lui appliquer. Le style ainsi créé et réinjecté au contrôle grâce à la fonction "SetWindowLong" (elle aussi incluse dans Coredll).
Le problème qui se pose à nous est que sous Compact Framewok le Textbox n'expose pas son handle système (le Compact Framework est très très pudique et il n'expose pas grand chose de son intimité système). Il faut donc trouver un moyen de récupérer cette info sans quoi nous ne pourrons modifier le style.
La solution consiste à utiliser une API, "GetFocus", qui retourne le handle système du contrôle qui a le focus. Le principe est donc de donner le focus au Textbox auquel on veut modifier le style et d'en récupérer le handle avec "GetFocus".
Note : Pour obliger un contrôle TextBox à n'accepter que des chiffres en saisie, il faut lui appliquer le style ES_NUMBER.
Voici le code de notre petite fonction :
Notez bien qu'il faut impérativement que le Textbox auquel vous voulez appliquer le style ES_NUMBER doit avoir le focus au moment de l'appel. Par exemple :
Vous pouvez appliquer le style dans l'événement "Load" de la Form, ainsi vous êtes certain que l'application sera effectuée une seule fois.
Et voilà, plus besoin de se prendre la tête à gérer caractère par caractère la saisie de chiffres. De plus, sous Smartphone (si si ça marche aussi) cette fonction oblige le système de saisie à passer en mode numérique ce qui simplifie énormément la saisie depuis le clavier du téléphone.
|
|||||||||||
|
Copyright 2001-2004 - Tous droits réservés Toutes les autres marques et produits présents dans ces pages sont la propriété exclusive de leurs sociétés respectives. |