Compartilhar via


Como: Adicionar um manipulador de eventos usando código

Este exemplo mostra como adicionar um manipulador de eventos a um elemento por meio de código.

Se você deseja adicionar um manipulador de eventos a um elemento XAML, e a página de marcação que contém o elemento já foi carregada, você deve adicionar o manipulador usando código. Como alternativa, se você estiver criando a árvore de elemento para um aplicativo usando inteiramente código e não declarando quaisquer elementos usando XAML, você pode chamar métodos específicos para adicionar manipuladores de eventos à árvore de elemento construída.

Exemplo

O exemplo a seguir adiciona um novo Button para uma página existente que está inicialmente definida em XAML. Um arquivo de código subjacente implementa um método manipulador de eventos e então adiciona esse método como um novo manipulador de eventos no Button.

O exemplo C# usa o operador += para atribuir um manipulador para um evento. Este é o mesmo operador usado para atribuir um manipulador no common language runtime (CLR) evento manipular o modelo. Microsoft Visual Basic não oferece suporte a esse operador sistema autônomo um meio de adicionar evento manipuladores. Em vez disso, ele requer uma das duas técnicas:

  • Use o método AddHandler, juntamente com um operador AddressOf, para fazer referência à implementação do manipulador de eventos.

  • Use a palavra-chave Handles como parte da definição do manipulador de eventos. Essa técnica não é mostrada aqui; consulte Visual Basic and WPF Event Handling.

<TextBlock Name="text1">Start by clicking the button below</TextBlock>
<Button Name="b1" Click="MakeButton">Make new button and add handler to it</Button>
Public Partial Class RoutedEventAddRemoveHandler
    Private Sub MakeButton(ByVal sender As Object, ByVal e As RoutedEventArgs)
        Dim b2 As Button = New Button()
        b2.Content = "New Button"
        AddHandler b2.Click, AddressOf Onb2Click
        root.Children.Insert(root.Children.Count, b2)
        DockPanel.SetDock(b2, Dock.Top)
        text1.Text = "Now click the second button..."
        b1.IsEnabled = False
    End Sub
    Private Sub Onb2Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
        text1.Text = "New Button (b2) Was Clicked!!"
    End Sub
public partial class RoutedEventAddRemoveHandler {
    void MakeButton(object sender, RoutedEventArgs e)
    {
        Button b2 = new Button();
        b2.Content = "New Button";
        // Associate event handler to the button. You can remove the event 
        // handler using "-=" syntax rather than "+=".
        b2.Click  += new RoutedEventHandler(Onb2Click);
        root.Children.Insert(root.Children.Count, b2);
        DockPanel.SetDock(b2, Dock.Top);
        text1.Text = "Now click the second button...";
        b1.IsEnabled = false;
    }
    void Onb2Click(object sender, RoutedEventArgs e)
    {
        text1.Text = "New Button (b2) Was Clicked!!";
    }
ObservaçãoObservação:

Adicionar um manipulador de eventos em inicialmente analisada XAML página é muito mais simples. Dentro do elemento de objeto onde você deseja adicionar o manipulador de eventos, adicione um atributo que corresponda ao nome do evento que você deseja manipular. Então especifique o valor daquele atributo como o nome do método manipulador de eventos que você definiu no arquivo de código subjacente da página XAML. Para obter mais informações, consulte XAML Overview ou Visão geral sobre eventos roteados.

For the complete sample, see Adicionando um exemplo de manipulador de eventos.

Consulte também

Tarefas

Adicionando um exemplo de manipulador de eventos

Conceitos

Visão geral sobre eventos roteados

Outros recursos

Events How-to Topics

Exemplos de eventos