Créer un abonnement
Vous créez un abonnement dans la méthode
Start()
.
CONSEIL:
Pour insérer automatiquement une nouvelle méthode :
- Dans Visual Studio, placez le caret après l’opérateur+=et appuyez deux fois sur la touche.TAB
- Dans Visual Studio Code, reportez-vous aux suggestions de l’éditeur.
Exemple
Dans cet exemple, la méthode
Session_UserChange
est abonnée à l’événement de changement d’utilisateur à l’aide du gestionnaire d’événements UserChange
et de l’opérateur +=
.public override void Start() { Session.UserChange += Session_UserChange; }
IMPORTANT:
Annulez toujours l'abonnement dans la méthode
Stop()
pour éviter une fuite de mémoire. Consultez la rubrique Annuler un abonnement.L’exemple suivant présente la méthode
Session_UserChange
.private void Session_UserChange(object sender, UserChangeEventArgs e) { Log.Info(e.newUser.BrowseName); }
- sender
- ObjetIUAObjectcorrespondant à l’origine du nœud de l’événement.
- e
- Objet C# contenant les données d’événement en fonction du type de données du gestionnaire d’événements (UserChangeEventArgsdans l’exemple).
Gestionnaires d’événements
Selon le type d’événement, créez un abonnement à l’aide de différents gestionnaires d’événements.
- Événement de changement de valeur d’une variable
- Pour abonner une méthode au changement de valeur d’une variable, utilisez le gestionnaire d’événementsVariableChangefourni par la classeIUAVariable. Consultez la rubrique IUAVariable.VariableChange.
- Tous les événements générés par un objet
- Pour abonner une méthode à tous les événements générés par un objet, utilisez le gestionnaire d’événementsUAEvent, fourni par la classeIUAObject. Consultez la rubrique IUAObject.UAEvent.
- Un événement spécifique d’un objet
- Pour abonner une méthode à un événement spécifique généré par un objet, utilisez le gestionnaire d’événements correspondant fourni par le type.Dans cet exemple, le gestionnaire d’événementsOnMouseClickexécute la méthodeButton2_OnMouseClickà chaque actionnement duButton2. Le gestionnaire d’événementsOnMouseClickest fourni par la classeButton.public override void Start() { var button2 = Owner.Get<Button>("Button2"); button2.OnMouseClick += Button2_OnMouseClick; } private void Button2_OnMouseClick(object sender, MouseClickEvent e) { var label2 = Owner.Get<Label>("Label2"); var button = (Button)sender; label2.Text = "Mouse click event on " + button.BrowseName; }
Fournir une réponse