Creazione di 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 Annullamento di 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. Per ulteriori informazioni sui gestori eventi di tipo, vedere Riferimento su oggetti e variabili.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