Périphériques

1 - La souris

1 - Évènements produits par l'utilisateur

Les trois premiers évènements ont lieu simultanément et dans l'ordre lorsque l'utilisateur clique sur un bouton. Si l'utilisateur clique sur un objet, maintient la touche enfoncée, déplace le pointeur et relache le bouton, c'est le 1er objet qui reçoit les évènements MouseDown et MouseUp. L'évènement Click n'est pas généré. L'objet sur lequel l'utilisateur a relaché le bouton ne reçoit aucun évènement.

Le quatrième évènement a lieu lorsque l'utilisateur clique 2 fois sur un bouton dans un laps de temps très court définit dans les paramètres système.

2 - Évènement liés au déplacement de la souris

Il y a quatre évènements:

3 - Informations récupérables

Les évènements MouseDown, MouseUp, MouseMove permettent de récupérer certaines informations.

4 - Changement de forme du pointeur

Lorsqu'il faut faire patienter l'utilisateur (chargement d'un long fichier, par exemple), on modifie le pointeur de la souris pour le transformer en sablier.

Cursor = Cursors.WaitCursor

Lorsque le traitement est terminé, on restitue le pointeur par défaut.

Cursor = Cursors.Default

2 - Le clavier

1 - Généralités

Les évènements sont KeyDown, KeyPress, KeyUp.
Il est plus facile de traiter KeyPress qui distingue les majuscules des minuscules.
Les propriétés sont:

KeyCode Le code ASCII de la touche
KeyData Cette donnée est une combinaison de KeyCode et de Modifiers
KeyValue Valeur numérique correspondant au code de la touche
Shift
Control
Alt
Indique si la touche correspondante a été enfoncée
(Voir un exemple plus bas)
Modifiers Indique lesquelles des 3 touches sont enfoncées
Handled Si on donne la valeur "True" à cette propriété, l'évènement n'est pas traité

2 - Filter la saisie au clavier

La procédure ci-dessous est utilisée pour saisir une valeur monétaire.
On autorise tout d'abord la touche 'Entrée' pour valider la saisie et passer à la saisie suivante.
Les touches '0' à '9' sont autorisées ainsi que l'effacement arrière (Chr(8)) pour permettre les corrections.
Si on appuie sur le point du pavé décimal, la première ligne intercepte l'évènement et empêche l'affichage. La deuxième ligne affiche une virgule. La troisième ligne repositionne correctement le curseur de saisie.
Toutes les autres touches sont interdites.

Private Sub txtMontant_KeyPress(...
  If Asc(e.KeyChar) = 13 Then txtLibellé.Focus()
  Select Case e.KeyChar
    Case "0" To "9", Chr(8) ' Touches autorisées
    Case "." ' Touche modifiée
      e.Handled = True
      txtMontant.Text &= ","
      txtMontant.SelectionStart = 99
    Case Else : e.Handled = True ' Touches interdites
  End Select
End Sub

3 - Valider une saisie avec la touche "Entrée"

Si votre formulaire contient un bouton pour valider votre saisie et passer à la suite du programme, vous pouvez y faire appel dans un évènement quelconque en appelant la procédure ainsi :

Private Sub txtEdit_KeyPress(...
  If Asc(e.KeyChar) = 13 Then
    Call btnValider_Click(sender, e)
  End If
End Sub

4 - Détecter une touche spéciale au clavier

Dans l'exemple ci-dessous, on exécute une portion de code uniquement si on a appuyé sur la touche 'Ctrl' avant l'appui sur une autre touche.
On détecte de meme, l'appui sur les touches 'Shift' et 'Alt'.

If Control.ModifierKeys = Keys.Control Then
  ...
End If

3 - Le presse-papier

Envoyer un texte vers le presse-papier :

Clipboard.SetDataObject("Message")

Récupérer des données du presse-papier :

Dim ppw As IdataObject()
ppw = Clipboard.GetDataObject()



Statistiques :      Conformité :  Valid XHTML 1.1 © Christian Soulié
Dernière mise à jour le 11 avril 2010.
Formatage des données -  Graphisme