共用方式為


HOW TO:使用程式碼加入事件處理常式

本範例顯示如何使用程式碼,將事件處理常式加入到項目中。

如果您要將事件處理常式加入到 XAML 項目,而包含項目的標記頁面已經載入,就必須使用程式碼加入處理常式。 或者,如果您完全使用程式碼來建立應用程式的項目樹狀結構,而且沒有使用 XAML 宣告任何項目,就可以呼叫特定方法,將事件處理常式加入到建構的項目樹狀結構。

範例

下列範例會將新的 Button 加入到原本使用 XAML 定義的現有頁面。 程式碼後置 (Code-Behind) 的檔案會實作事件處理常式方法,然後將該方法當做新的事件處理常式加入到 Button 上。

C# 範例會使用 += 運算子,將處理常式指派給事件。 common language runtime (CLR) 事件處理模型也會使用同樣的運算子來指派處理常式。 Microsoft Visual Basic 不支援使用此運算子做為加入事件處理常式的方式。 它需要使用下列其中一種方式:

  • 使用 AddHandler 方法再加上 AddressOf 運算子,以參考事件處理常式實作。

  • 使用 Handles 關鍵字做為事件處理常式定義的一部分。 這裡不說明此方式;請參閱 Visual Basic 和 WPF 事件處理

<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!!";
    }
注意事項注意事項

在原本剖析的 XAML 頁面中加入事件處理常式要簡單許多。在要加入事件處理常式的物件項目內,加入名稱與要處理的事件相符的屬性。接著將該屬性的值指定為您在 XAML 頁面的程式碼後置檔案中所定義的事件處理常式方法的名稱。如需詳細資訊,請參閱 XAML 概觀 (WPF)路由事件概觀

請參閱

概念

路由事件概觀

其他資源

事件 HOW TO 主題