Creare una sottoscrizione
È possibile creare una sottoscrizione all'interno del metodo
Start()
.
MANCIA:
Per inserire automaticamente un nuovo metodo:
- In Visual Studio posizionare il cursore di inserimento dopo l'operatore+=e premeredue volte.TAB
- In Visual Studio Code, fare riferimento ai suggerimenti dell'editor.
Esempio
In questo esempio, il metodo
Session_UserChange
viene registrato per l'evento su cambiamento dell'utente utilizzando il gestore eventi UserChange
e l'operatore +=
.public override void Start() { Session.UserChange += Session_UserChange; }
IMPORTANTE:
Annullare sempre la sottoscrizione all'interno del metodo
Stop()
, per evitare consumo di memoria. Vedere Annullare una sottoscrizione.L'esempio seguente mostra il metodo
Session_UserChange
.private void Session_UserChange(object sender, UserChangeEventArgs e) { Log.Info(e.newUser.BrowseName); }
- sender
- L'oggettoIUAObjectche corrisponde all'origine del nodo dell'evento.
- e
- L'oggetto C# che contiene i dati evento in base al tipo di dati del gestore eventi (UserChangeEventArgsnell'esempio).
Gestori eventi
A seconda del tipo di evento, creare una sottoscrizione utilizzando diversi gestori eventi.
- Evento cambiamento del valore di una variabile
- Per sottoscrivere un metodo al cambio valore di una variabile, usare il gestore eventiVariableChange, fornito dalla classeIUAVariable. Vedere IUAVariable.VariableChange.
- Tutti gli eventi generati da un oggetto
- Per sottoscrivere un metodo per tutti gli eventi generati da un oggetto, utilizzare il gestore eventiUAEvent, fornito dalla classeIUAObject. Vedere IUAObject.UAEvent.
- Un evento specifico di un oggetto
- Per sottoscrivere un metodo per un evento specifico generato da un oggetto, utilizzare il gestore eventi corrispondente fornito dal tipo.In questo esempio, il gestore eventiOnMouseClickesegue il metodoButton2_OnMouseClickogni volta che viene premutoButton2. Il gestore eventiOnMouseClickè fornito dalla 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; }
Fornire un feedback