|
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
|
Traduction
Source
|
Procédure pas à pas : gestion des événements (Visual Basic)
Pour gérer l'événement PercentDone de la classe Widget
-
Tapez le code suivant dans Form1 : Private WithEvents mWidget As Widget Private mblnCancel As Boolean
Le mot clé WithEvents spécifie que la variable mWidget est utilisée pour gérer les événements d'un objet. Pour spécifier le type d'objet, vous devez fournir le nom de la classe à partir de laquelle cet objet sera créé. La variable mWidget est déclarée dans Form1 parce que les variables WithEvents doivent être de niveau classe. Cela est vrai quel que soit le type de classe dans lequel vous les placez. La variable mblnCancel est employée pour annuler la méthode LongTask.
Pour gérer un événement
-
Sélectionnez mWidget dans la zone de liste déroulante de gauche dans l'éditeur de code. -
Sélectionnez l'événement PercentDone dans la zone de liste déroulante de droite. L'éditeur de code ouvre la procédure événementielle mWidget_PercentDone.
Remarque
L'éditeur de code est utile, mais pas obligatoire, pour l'insertion de nouveaux gestionnaires d'événements. Dans cette procédure pas à pas, il est plus rapide de copier simplement les gestionnaires d'événements directement dans votre code. -
Ajoutez le code suivant au gestionnaire d'événements mWidget_PercentDone : Private Sub mWidget_PercentDone( ByVal Percent As Single, ByRef Cancel As Boolean ) Handles mWidget.PercentDone lblPercentDone.Text = CInt(100 * Percent) & "%" My.Application.DoEvents() If mblnCancel Then Cancel = True End Sub
Chaque fois que l'événement PercentDone est déclenché, la procédure événementielle affiche le pourcentage réalisé dans un contrôle Label. La méthode DoEvents permet que l'étiquette soit repeinte et donne également à l'utilisateur la possibilité de cliquer sur le bouton Annuler. -
Ajoutez le code suivant pour le gestionnaire d'événements Button2_Click : Private Sub Button2_Click( ByVal sender As Object, ByVal e As System.EventArgs ) Handles Button2.Click mblnCancel = True End Sub
Pour créer un objet et lui assigner une référence
-
Sélectionnez (Form1 Events) dans la zone de liste déroulante de gauche dans l'éditeur de code. -
Sélectionnez l'événement Load dans la zone de liste déroulante de droite. L'éditeur de code ouvre la procédure événementielle Form1_Load. -
Ajoutez le code suivant pour la procédure événementielle Form1_Load afin de créer le Widget: Private Sub Form1_Load( ByVal sender As System.Object, ByVal e As System.EventArgs ) Handles MyBase.Load mWidget = New Widget End Sub
Pour appeler la méthode LongTask
-
Ajoutez le code suivant au gestionnaire d'événements Button1_Click : Private Sub Button1_Click( ByVal sender As Object, ByVal e As System.EventArgs ) Handles Button1.Click mblnCancel = False lblPercentDone.Text = "0%" lblPercentDone.Refresh() mWidget.LongTask(12.2, 0.33) If Not mblnCancel Then lblPercentDone.Text = CStr(100) & "%" End Sub
Pour exécuter le programme
-
Appuyez sur F5 pour passer le projet en mode exécution. -
Cliquez sur le bouton Start Task. Chaque fois que l'événement PercentDone est déclenché, l'étiquette est mise à jour de façon à afficher le pourcentage de tâche réalisé. -
Cliquez sur le bouton Cancel pour arrêter la tâche. Notez que l'apparence du bouton Annuler ne change pas immédiatement lorsque vous cliquez dessus. L'événement Click ne peut pas se produire tant que l'instruction My.Application.DoEvents n'autorise pas le traitement de l'événement.
Remarque
La méthode My.Application.DoEvents ne traite pas les événements exactement de la même manière que le formulaire. Par exemple, dans cette procédure pas à pas, vous devez cliquer deux fois sur le bouton Annuler. Pour permettre au formulaire de gérer les événements directement, vous pouvez utiliser le multithreading. Pour plus d'informations, consultez Threads (C# et Visual Basic).
Pour gérer les événements d'un autre objet Widget
-
Ajoutez la ligne de code suivante à la procédure Button1_Click, juste avant la ligne mWidget.LongTask(12.2, 0.33) : mWidget = New Widget ' Create a new Widget object.
Remarque
|
|---|
|
|