Textbox numerique

Contenu du snippet

"Un textbox que peut contenir uniquement des chiffres"

Suite a une demande récurrent esur le Forum, et quelques dépots de sources traitant le sujet en filtrant les touches du clavier....

voici une version utilisant les API....

Source / Exemple :


Option Explicit

'# Déclaration de quelques API
Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Private Const ES_NUMBER As Long = &H2000&
Private Const GWL_STYLE As Long = -16

Private Sub MakeNumericOnly(Obj As Object)
    '# Cette variable contiendra le Style de notre Controle :
    '# il s'agit d'une combinaison de differentes valeurs...
    Dim Style As Long
    
    '# On récupère le style actuel
    Style = GetWindowLong(Obj.hwnd, GWL_STYLE)
    
    '# On ajoute le style ES_NUMBER...
    Style = Style Or ES_NUMBER
    
    '# et on replace le tout dans le Controle
    SetWindowLong Obj.hwnd, GWL_STYLE, Style
End Sub

Private Sub Form_Load()
    MakeNumericOnly Text1
End Sub

Conclusion :


Le presse papier est une faille ici.... libre a vous d'implémenter ca comme bon vous semblera......

De plus, cette source ne permets pas des nombres décimaux, ou négatifs...

A voir également

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.