|
Site |
Cours VB.net |
|
|
|
Le curseur et la souris. |
|
|

Comment modifier l'apparence du curseur?
Un curseur est une petite image dont l'emplacement à l'écran est contrôlé par la souris, un stylet ou un trackball. Quand l'utilisateur déplace la souris, le système d'exploitation déplace le curseur.
Différentes formes de curseur sont utilisées pour informer l'utilisateur de l'action que va avoir la souris.
Apparence du curseur
Pour modifier l'aspect du curseur il faut modifier l'objet Cursor.Current; l'énumération Cursors contient les différents curseurs disponibles:
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor
ou plus simplement pour afficher le sablier:
Cursor.Current = Cursors.WaitCursor
Pour revenir au curseur normal:
Cursor.Current = Cursors.Default
Comme d'habitude il suffit de taper Cursors. pour voir la liste des curseurs.
Le curseur peut disparaître et être de nouveau affiché par Hide et Show.
Les fichiers curseur sont des .Cur ou des .Ico ; pour 'charger' le curseur personnalisé:
Button1.Cursor = New Cursor("MyCurseur.cur")
Curseur sur un contrôle:
Un contrôle dans une fenêtre possède une propriété Cursor; en mode design, si je donne une valeur autre que celle par défaut, CursorWait par exemple, cela modifie le curseur quand la souris passe au dessus de l'objet (cela met un sablier dans notre exemple).
La souris:
Chaque contrôle ou formulaire possède des procédures évènements déclenchées par la souris.MouseEnter : s'exécute lors de l'arrivée de la souris sur un contrôle
MouseLeave :s'exécute lors de la sortie de la souris d'un contrôle
Plus important:
MouseUp se produit lorsque l'utilisateur appuie sur le bouton de la souris
MouseDown se produit lorsque l'utilisateur lâche sur le bouton de la souris
le déplacement de la souris exécute:
MouseMove se produit lorsque l'utilisateur déplace le pointeur de la souris
Un paramètre e de type MouseEventsArgs est alors disponible pour les 3 évènements.
Exemple:
La procédure évènement se produit quand l'utilisateur appuie sur le bouton de la souris.
Private
Sub Form1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown..
End Sub
Le paramètre e de type MouseEventsArgs permet de connaître la position de la souris et l'état des boutons:
e.X et e.Y contiennent les coordonnées de la souris dans le contrôle en cours.
Attention ce sont bien les coordonnées du control alors que dans les opérations de drag and drop ce sont par contre les coordonnées 'écran' qui sont utilisées, il faudra les transformer en coordonnées 'contrôl' avec PointToClient : voir le chapitre sur les coordonnées.
e.Button() retourne le bouton qui a été enfoncé.
if
e.Button()=MouseButtons.Left Then..e.Click() retourne le nombre de Click
e.Delta() retourne le nombre de cran de la molette souris.
Si la souris n'est pas sur le contrôle et que l'on veut quand même récupérer les évènements de la souris sur ce contrôle, il faut mettre la propriété Capture de ce contrôle à True.
Exemples:
Dans un programme de dessin, quand l'utilisateur enfonce le bouton gauche de la souris, on peut récupérer les coordonnées du point ou se trouve la souris.
Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
Dim NewPoint As New Point(e.X, e.Y)
End Sub
Pour voir un exemple complet de dessin, regarder Programme simple de Dessin
Exemple affichant dans une 'bulle' le numéro d'index de l'élément survolé dans une listbox:
Dans MouseMove les coordonnées de la souris permettent de déterminer l'index survolé grâce à IndexFromPoint. L'index est affiché dans un ToolTip.
Private
Sub ListBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseMoveToolTip1.SetToolTip(ListBox1, "Index:"& CType(ListBox1.IndexFromPoint(e.X, e.Y), String))
End Sub
la propriété IndexFromPoint n'existe pas pour les combos.
Voir aussi la page sur le Drag and Drop.
|
|
|
|
|