Criar assinatura
Você cria a assinatura dentro do método
Start()
.
DICA:
Para inserir um novo método automaticamente:
- No Visual Studio, coloque o símbolo de “V” (caret) após o operador+=e pressione duas vezes.TAB
- No Visual Studio Code, consulte as sugestões do editor.
Exemplo
Neste exemplo, o método
Session_UserChange
é inscrito no evento de alteração do usuário usando o manipulador de eventos UserChange
e o operador +=
.public override void Start() { Session.UserChange += Session_UserChange; }
IMPORTANTE:
Sempre cancele a assinatura no método
Stop()
para evitar perda de memória. Consulte Cancelar uma assinatura.O exemplo a seguir mostra o método
Session_UserChange
.private void Session_UserChange(object sender, UserChangeEventArgs e) { Log.Info(e.newUser.BrowseName); }
- sender
- ObjetoIUAObjectque corresponde à origem do nó do evento.
- e
- Objeto C# que contém os dados do evento com base no tipo de dados do manipulador de eventos ( no exemplo,UserChangeEventArgs).
Manipuladores de evento
Dependendo do tipo de evento, crie uma assinatura usando diferentes manipuladores de eventos.
- Alteração de valor de um evento de variável
- Para inscrever um método para a alteração de valor de uma variável, use o manipulador de eventosVariableChange, fornecido pela classeIUAVariable. Consulte IUAVariable.VariableChange.
- Todos os eventos gerados por um objeto
- Para inscrever um método para todos os eventos gerados por um objeto, use o manipulador de eventosUAEvent, fornecido pela classeIUAObject. Consulte IUAObject.UAEvent.
- Evento específico de um objeto
- Para inscrever um método para um evento específico gerado por um objeto, use o manipulador de eventos correspondente fornecido pelo tipo.Neste exemplo, o manipulador de eventosOnMouseClickexecuta o métodoButton2_OnMouseClicksempre queButton2é pressionado. O manipulador de eventosOnMouseClické fornecido pela 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; }
Dê sua opinião