jeudi 13 juin 2013

L'événement MouseDown en VB. NET

L'événement MouseDown est disponible à de nombreux contrôles sur le formulaire. Un formulaire peut détecter quand la souris est maintenu enfoncé sur elle, une zone de texte permet de détecter quand la souris est maintenu enfoncé à l'intérieur de celui-ci, et un bouton permet de détecter quel bouton de la souris a été enfoncé pour faire le clic.
Nous allons voir comment cela fonctionne bien maintenant.
Tout d'abord, supprimer l'ensemble mais l'un des boutons de votre formulaire. (Vous pouvez cliquer droit sur ​​un contrôle pour le supprimer. Si vous n'avez pas suivi depuis le début de la leçon précédente , alors il suffit de créer un nouveau projet. ajouter un bouton à votre formulaire, et laisser Iton le nom par défaut de Button1.)
Retournez à votre fenêtre de codage et supprimer n'importe quel code pour le bouton sur votre formulaire. Supprimez tout le code de poignées sauf pour les poignées Button1.Click. Votre fenêtre de codage devrait ressembler à celui-ci (nous avons utilisé souligne à diffuser le code sur trois lignes):

La fenêtre de codage, avec l'événement au sommet
Tout en haut de la fenêtre de code, il est dit Button1 et Click. L'éclair à côté Cliquez signifie que c'est un événement. Si vous cliquez sur la liste déroulante, vous verrez une liste d'autres événements disponibles:
Sélectionnez l'événement MouseDown de la liste
Faites défiler vers le bas et trouver l'événement MouseDown, comme dans l'image ci-dessus. Lorsque vous cliquez dessus, un nouveau code stub apparaît, celui-ci (la nôtre ressemble un peu brouillon):
Button1_MouseDown Private Sub (ByValsender As Object, ByVal e Comme System.Windows.Forms.MouseEventArgs) Poignées Button1.MouseDown
End Sub
Il s'agit d'un sous-programme privé appelé Button1_MouseDown. Notez qu'il gère l'événement MouseDown Button1, et non Button1.Click.

Explorer les arguments de l'événement

Entre les parenthèses du sous-programme, nous avons encore sender As Object. Mais nous avons un nouvel argument maintenant (2012 utilisateurs verront simplement e As MouseEventArgs):
ByVal e As System.Windows.Forms.MouseEventArgs
Le nom de la variable est toujours e. Mais le type d'objet stocké à l'intérieur de la variable e est différent:
System.Windows.Forms.MouseEventArgs
Le peu sur la fin de tout ce qui est ce que nous nous intéressons à: MouseEventArgs. Cela signifie les événements de souris arguments. Ce qui est stocké à l'intérieur de la variable e est une information l'événement de souris: Avez-vous cliqué sur un bouton, si oui lequel?
La seule chose que vous devez faire pour détecter quel bouton a été pressé est d'accéder à une propriété de la variable e. Voyons comment faire cela.

Quel bouton a été cliqué?

A l'intérieur de la sous-routine Button1_MouseDown, tapez le code suivant:
Si e.Button = MouseButtons.Right ensuite
MsgBox ("Bouton clic droit")
End If
Dès que vous tapez la lettre "e", vous verrez cette boîte pop up:
Propriétés et méthodes de l'événement
Pour détecter quel bouton a été cliqué, vous devez la première propriété sur la liste: Button. Double-cliquez sur cette propriété pour l'ajouter à votre code. Puis, après que vous avez tapé le signe égal, une autre liste de pop up apparaît. Celui-ci:
Sélectionnez un bouton de la souris pour détecter
Il s'agit d'une liste des boutons disponibles que VB peut détecter. Gauche et droite sont celles que vous utilisez le plus souvent.
Lorsque vous avez ajouté l'instruction if, votre fenêtre de codage devrait ressembler à ceci:
Code VB NET pour l'événement MouseDown
Lorsque vous avez fini d'écrire votre code, exécutez votre programme. Cliquez sur le bouton avec le bouton gauche de la souris et rien ne se passera. Cliquez avec le bouton droit de la souris et vous devriez voir l'affichage de la boîte de message.

MouseDown et le formulaire

Arrêtez votre programme. Quand vous revenez à l'environnement de codage, cliquez sur la flèche vers le bas de Button1 au début du code. Vous verrez un menu déroulant comme ceci:
Form1 Events
Sélectionnez celui mis en évidence dans l'image, "Form1 Events". Dans la zone Événements à droite, sélectionnez MouseDown de la liste des événements disponibles. Un nouveau code stub apparaît:
Form1_MouseDown Private Sub (sender As Object, ByVal e Comme System.Windows.Forms.MouseEventArgs) Poignées MyBase.MouseDown
End Sub
Cette fois, nous avons un sous-programme privé appelé Form1_MouseDown. Les deux arguments sont exactement les mêmes que précédemment. La différence, c'est que maintenant ce code gère l'événement MouseDown pour quelque chose qui s'appelle MyBase. (Il s'agit d'un objet qui se réfère au code pour la classe Form1 publique.)
La chose importante à garder à l'esprit est que nous avons maintenant un moyen de détecter quand un bouton de la souris a été cliqué sur le formulaire lui-même.
Ajoutez le code suivant à l'intérieur de Form1_MouseDown:
Si e.Button = MouseButtons.Right ensuite
MsgBox ("Vous avez cliqué sur le formulaire»)
End If
La seule chose qui a changé, c'est la boîte de message! L'instruction if est exactement le même. Exécutez votre programme et le tester. Cliquez n'importe où sur votre formulaire, et vous devriez voir la nouvelle boîte de message. Toutefois, si vous faites un clic droit sur le bouton, vous obtiendrez l'ancienne boîte de message. Bien que le bouton est sur le formulaire, cela est considéré comme un contrôle séparé de la forme elle-même. Alors, il a ses propres événements.
Vous pouvez détecter où sur le formulaire de la souris était lorsque le bouton droit de la souris était clic. Modifier votre code pour Form1_MouseDown. Changez-le à ceci:
XPos As Integer
YPos As Integer
Si e.Button = MouseButtons.Right ensuite
xPos = eX
yPos = eY
MsgBox ("La Position X est" & xPos et «La position Y est" & yPos)
End If
Tout d'abord, nous mettons en place deux variables entières, xPos et ypos. Après cela, nous avons la même instruction If comme avant:
Si e.Button = MouseButtons.Right ensuite
End If
A l'intérieur de l'if, nous utilisons les propriétés Y de la variable X e et:
xPos = eX
yPos = eY
La propriété X retourne dans quelle mesure travers, de gauche à droite, la souris est; la propriété Y retourne à quel point bas, de haut en bas, la souris est. Ces valeurs sont assignées à nos deux variables. Le résultat est affiché dans une boîte de message.
Quand vous avez écrit le code, exécutez votre programme et le tester. Faites un clic droit n'importe où sur votre formulaire. La nouvelle boîte de message devrait s'afficher, vous indiquant où la souris a été lorsque le bouton droit est enfoncé.
Cliquez près du sommet de la forme et vous verrez le numéro de position Y descendre en valeur; Cliquez près du fond de la forme et vous verrez monter en valeur. Le sommet de la forme (ou un contrôle) a une valeur Y de zéro.
Cliquez de gauche à droite et vous verrez le nombre de X montent en valeur. Le bord extrême gauche de votre formulaire a une valeur X de zéro.
Dans la partie suivante, nous allons explorer l'événement KeyDown.

0 commentaires:

Enregistrer un commentaire