Comment faire pour ajouter un gestionnaire d'événements à la variable locale dans VB.NET
J'ai un formulaire dans VB.NET qui est utilisé comme un dialogue dans un mainform. Ses instances sont toujours définis localement, il n'y a pas de champ pour. Lorsque l'utilisateur clique sur le bouton OK dans la boîte de dialogue, il va déclencher un événement avec un seul argument, une instance de l'une de mes classes.
Car il est toujours une variable locale, comment puis-je ajouter un gestionnaire d'événements pour l'événement? J'ai cherché par moi-même et trouvé quelque chose, mais je ne peux pas vraiment comprendre...
Code pour l'événement, un champ dans MyDialog
:
public Event ObjectCreated(ByRef newMyObject as MyObject)
Code pour le formulaire principal de boîte de dialogue d'appel : (sans parler de la syntaxe)
Dim dialog As New MyDialog()
dialog.ShowDialog(Me)
AddHandler ObjectCreated, (what do I put here?) //Or how do I add a handler?
Comme vous pouvez le voir, je suis coincé sur la façon d'ajouter un gestionnaire pour mon cas. Quelqu'un peut-il m'aider? De préférence avec la meilleure façon de le faire...
OriginalL'auteur MarioDS | 2012-04-25
Vous devez vous connecter pour publier un commentaire.
Il est recommandé, pour des raisons de cohérence, que vous utilisez la même source, et l'événement args modèle de tous les systèmes de gestionnaires d'événements.
Créer votre propre classe héritant de EventArgs, comme:
Ensuite déclarer votre événement, et une méthode de gestionnaire, comme:
Puis fixez le gestionnaire de votre événement à l'aide de:
En outre, vous pouvez utiliser le
Handles
à joindre à l'événement déclenché à partir de votre formulaire principal (en supposant que le nom de la MainForm), comme ci-dessous:J'ai pensé à votre question "de Préférence avec la meilleure façon de le faire...". Pourquoi voudriez-vous de l'onu de la marque de ma réponse?
Eh bien, j'ai immédiatement compris que j'ai donc accepté la vôtre encore une fois, désolé pour la confusion.
OriginalL'auteur Mike Guthrie
Vous avez besoin d'écrire la fonction qui exécute lorsque l'événement est généré:
Ensuite, le gestionnaire est ajouté:
Comme une note de côté, ByRef ne fait rien ici. Tous les objets dans visual basic sont passés par référence. Seulement originaire de variables (string, int, etc), par défaut, utilisez ByVal et peut être configuré pour ByRef
OriginalL'auteur Robert Beaubien