Create a subscription
You create a subscription inside the
Start()
method.
TIP:
To insert a new method automatically:
- In Visual Studio, place the caret after the+=operator, and presstwice.TAB
- In Visual Studio Code, refer to the editor suggestions.
Example
In this example, the
Session_UserChange
method is subscribed to the user change event using the UserChange
event handler and the +=
operator.
public override void Start() { Session.UserChange += Session_UserChange; }
IMPORTANT:
Always cancel the subscription in the
Stop()
method to avoid a memory leak. See Cancel a subscription.The following example shows the
Session_UserChange
method.
private void Session_UserChange(object sender, UserChangeEventArgs e) { Log.Info(e.newUser.BrowseName); }
- sender
- TheIUAObjectobject that corresponds to the node origin of the event.
- e
- The C# object that contains the event data based on the data type of the event handler (UserChangeEventArgsin the example).
Event handlers
Depending on the event type, create a subscription by using different event handlers.
- Value change of a variable event
- To subscribe a method to the value change of a variable, use theVariableChangeevent handler, supplied by theIUAVariableclass. See IUAVariable.VariableChange.
- All events generated by an object
- To subscribe a method to all events generated by an object, use theUAEventevent handler, supplied by theIUAObjectclass. See IUAObject.UAEvent.
- A specific event of an object
- To subscribe a method to a specific event generated by an object, use the corresponding event handler supplied by the type. For more information about type event handlers, see Object and variable references.In this example, theOnMouseClickevent handler runs theButton2_OnMouseClickmethod each timeButton2is pressed. TheOnMouseClickevent handler is supplied by theButtonclass.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; }
Provide Feedback