TextBox


#2 - Exemples pratiques

***********************************************************
# EMPÊCHER LA SAISIE DE CARACTERES SPECIFIQUES #1
***********************************************************


Private Sub txtchiffre_KeyPress(KeyAscii As Integer)

' N'autorise que la saisie de chiffres

If InStr("0123456789", Chr(KeyAscii)) = 0 Then KeyAscii = 0

End Sub

Toute touche a son propre code ASCII. Le mot cléKeyascii nous le donnant, on peut aisément savoir quelle touche a étépressée. La fonction Chr convertit un code ASCII en son caractère correspondant. Ainsi le caractère tapéest comparéaux chiffres 0123456789, et s'il n'y ne correspond àaucun d'eux, le caractère est tout simplement effacéàl'aide de l'instruction Keyascii = 0.
Vous pouvez trouver le code ASCII de chaque caractère dans l'aide de VB.

***********************************************************
# SUPPRESSION DU BIP LORSQUE L'ON PRESSE LA TOUCHE ENTREE #2
***********************************************************


Private Sub txtbox_KeyPress(KeyAscii As Integer)

' L'utilisateur appuie sur la touche entrée

If Keyascii = 13 Then KeyAscii = 0

End Sub

Un des défauts de la touche entrée, c'est que lorsque le focus se trouve sur un TextBox, un bip se fait entendre (son par défaut dans le Menu Sons du panneau de configuration). En interceptant l'appui de la touche Entrée, on peut supprimer ce son par l'instruction Keyascii = 0. Le caractère étant supprimé, l'effet est le même que si personne n'avait appuyésur la touche. Evidemment, rien ne vous empêche de continuer la boucle If pour valider un password par exemple, l'instruction qui devait être vérifiée ne l'étant qu'une fois.

************************************************************
# SELECTION DE CARACTERES #3
************************************************************

Private Sub txtpass_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

  If txtpass.Text = "CYBERATOM"Then
    ' Mot de passe correct
  Else
     ' Mot de passe incorrect
    MsgBox "Mot de passe incorrect ! "&vbCrLf &"Veuillez recommencer !", vbCritical, "Erreur"
     ' Selection de toutes les caractères
    txtpass.SelStart = 0
    txtpass.SelLength = Len(txtpass)
  End If

End If

End Sub

Ici, on a un TextBox (PasswordChar = "*") oùl'on attend un mot de passe. Le mot de passe est validéquand l'utilisateur appuie sur la touche Entrée. Si le mot de passe est incorrect, toute la chaîne de caractère àl'intérieur du TextBox est sélectionnée, afin que l'utilisateur ne soit pas obligéd'appuyer x fois sur la touche BackSpace. Dès la nouvelle saisie d'un caractère, l'ancien texte sera automatiquement supprimé.

************************************************************
# CHANGEMENT DE TEXTE AU SURVOL DU CURSEUR #4
************************************************************


Private Sub
Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

txtmove.FontBold = False

End Sub


Private Sub txtmove_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

txtmove.BackColor = txtmove.FontBold = False

End Sub

Au passage de la souris sur le contrôle, l'événement MouseMove est déclenché. Dans notre cas, le texte devient gras. Lorsque le souris quitte la zone de texte, le texte redevient normal. L'événement "MouseOut"n'existant pas, on utilise le MouseMove de la feuille, ce qui revient au même : si le curseur de la souris se trouve sur la feuille, cela signifie qu'il a quittéla zone de texte bien évidemment.









(c) - CYBER@TOM ASSOCIATION 2000-2004