Behandeln eines Steuerelementereignisses (Windows Forms .NET)

Ereignisse für Steuerelemente (und für Formulare) werden im Allgemeinen über den Visual Studio Visual Designer für Windows Forms festgelegt. Das Festlegen eines Ereignisses über den Visual Designer zur Entwurfszeit wird als Behandeln eines Ereignisses bezeichnet. Sie können Ereignisse im Code auch dynamisch behandeln. Dies wird zur Laufzeit als Behandlung von Ereignissen bezeichnet. Mit einem Ereignis, das zur Laufzeit erstellt wird, können Sie Ereignishandler dynamisch basierend auf der aktuellen Aktivität der App verbinden.

Wichtig

Der Desktopleitfaden zu .NET 7 und .NET 6 ist in Bearbeitung.

Behandeln eines Ereignisses – Designer

Verwenden Sie in Visual Studio Visual Designer, um Handler für Steuerelementereignisse zu verwalten. Visual Designer generiert den Handlercode und fügt ihn für Sie dem Ereignis hinzu.

Festlegen des Handlers

Verwenden Sie den Bereich Eigenschaften, um den Handler eines Ereignisses hinzuzufügen oder festzulegen:

  1. Öffnen Sie Visual Designer des Formulars, das das zu ändernde Steuerelement enthält.

  2. Wählen Sie das Steuerelement aus.

  3. Ändern Sie den Bereichsmodus Eigenschaften in Ereignisse, indem Sie auf die Schaltfläche „Ereignisse“ () klicken.

  4. Suchen Sie das Ereignis, dem Sie einen Handler hinzufügen möchten, z. B. das Click-Ereignis:

    Visual Studio properties pane shown with the events mode enabled and the click event.

  5. Führen Sie eines der folgenden Verfahren aus:

    • Doppelklicken Sie auf das Ereignis, um einen neuen Handler zu generieren. Es ist leer, wenn kein Handler zugewiesen ist. Wenn es nicht leer ist, öffnet diese Aktion den Code für das Formular und navigiert zum vorhandenen Handler.

    • Verwenden Sie das Auswahlfeld (), um einen vorhandenen Handler auszuwählen.

      Das Auswahlfeld listet alle Methoden auf, die über eine kompatible Methodensignatur für den Ereignishandler verfügen.

Löschen des Handlers

Um einen Ereignishandler zu entfernen, löschen Sie nicht einfach nur den Handlercode, der sich in der CodeBehind-Datei des Formulars befindet. Das Ereignis verweist weiterhin auf ihn. Verwenden Sie den Bereich Eigenschaften, um den Handler eines Ereignisses zu entfernen:

  1. Öffnen Sie Visual Designer des Formulars, das das zu ändernde Steuerelement enthält.

  2. Wählen Sie das Steuerelement aus.

  3. Ändern Sie den Bereichsmodus Eigenschaften in Ereignisse, indem Sie auf die Schaltfläche „Ereignisse“ () klicken.

  4. Suchen Sie das Ereignis, das den Handler enthält, den Sie entfernen möchten, z. B. das Click-Ereignis:

    Visual Studio properties pane shown with the events mode enabled and the click event.

  5. Klicken Sie mit der rechten Maustaste auf das Ereignis, und wählen Sie Zurücksetzen aus.

Behandeln eines Ereignisses – Code

In der Regel fügen Sie Ereignishandler zur Entwurfszeit über den Visual Designer Steuerelementen hinzu. Sie können jedoch Steuerelemente zur Laufzeit erstellen. Dazu müssen Sie allerdings Ereignishandler im Code hinzufügen. Durch das Hinzufügen von Handlern im Code erhalten Sie auch die Möglichkeit, demselben Ereignis mehrere Handler hinzuzufügen.

Hinzufügen eines Handlers

Das folgende Beispiel zeigt, wie Sie ein Steuerelement erstellen und einen Ereignishandler hinzufügen. Dieses Steuerelement wird im Button.Click-Ereignishandler einer anderen Schaltfläche erstellt. Wenn auf Button1 geklickt wird. Der Code verschiebt eine neue Schaltfläche und ändert die Größe. Das Click-Ereignis der neuen Schaltfläche wird von der MyNewButton_Click-Methode behandelt. Um die neue Schaltfläche anzuzeigen, wird sie der Controls-Sammlung des Formulars hinzugefügt. Es gibt auch Code zum Entfernen des Handlers des Button1.Click-Ereignisses. Dies wird im Abschnitt Entfernen des Handlers erläutert.

private void button1_Click(object sender, EventArgs e)
{
    // Create and add the button
    Button myNewButton = new()
    {
        Location = new Point(10, 10),
        Size = new Size(120, 25),
        Text = "Do work"
    };

    // Handle the Click event for the new button
    myNewButton.Click += MyNewButton_Click;
    this.Controls.Add(myNewButton);

    // Remove this button handler so the user cannot do this twice
    button1.Click -= button1_Click;
}

private void MyNewButton_Click(object sender, EventArgs e)
{
    
}
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    'Create and add the button
    Dim myNewButton As New Button() With {.Location = New Point(10, 10),
                                          .Size = New Size(120, 25),
                                          .Text = "Do work"}

    'Handle the Click event for the new button
    AddHandler myNewButton.Click, AddressOf MyNewButton_Click
    Me.Controls.Add(myNewButton)

    'Remove this button handler so the user cannot do this twice
    RemoveHandler Button1.Click, AddressOf Button1_Click
End Sub

Private Sub MyNewButton_Click(sender As Object, e As EventArgs)

End Sub

Um diesen Code auszuführen, navigieren Sie zu einem Formular mit Visual Designer von Visual Studio und:

  1. Fügen Sie dem Formular eine neue Schaltfläche hinzu, und nennen Sie sie Button1.
  2. Ändern Sie den Bereichsmodus Eigenschaften in Ereignisse, indem Sie auf die Schaltfläche „Ereignis“ () klicken.
  3. Doppelklicken Sie auf Click-Ereignis, um einen Handler zu generieren. Diese Aktion öffnet das Codefenster und generiert eine leere Button1_Click-Methode.
  4. Ersetzen Sie den Methodencode durch den vorherigen Code oben.

Weitere Informationen zu C#-Ereignissen finden Sie unter Ereignisse (C#) Weitere Informationen zu Visual Basic-Ereignissen finden Sie unter Ereignisse (Visual Basic)

Entfernen des Handlers

Der Abschnitt Hinzufügen eines Handlers verwendet Code, um das Hinzufügen eines Handlers zu veranschaulichen. Dieser Code enthielt auch einen Aufruf, um einen Handler zu entfernen:

button1.Click -= button1_Click;
RemoveHandler Button1.Click, AddressOf Button1_Click

Diese Syntax kann verwendet werden, um einen beliebigen Ereignishandler aus jedem Ereignis zu entfernen.

Weitere Informationen zu C#-Ereignissen finden Sie unter Ereignisse (C#) Weitere Informationen zu Visual Basic-Ereignissen finden Sie unter Ereignisse (Visual Basic)

Verwenden mehrerer Ereignisse mit demselben Handler

In Visual Studio im Visual Designer-Bereich Eigenschaften können Sie denselben Handler auswählen, der bereits von einem anderen Ereignis verwendet wird. Folgen Sie den Anweisungen im Abschnitt Festlegen des Handlers, um einen vorhandenen Handler auszuwählen, anstatt einen neuen zu erstellen.

In C# wird der Handler an das Ereignis eines Steuerelements im Designercode des Formulars angefügt, der durch Visual Designer geändert wurde. Weitere Informationen zu C#-Ereignissen finden Sie unter Ereignisse (C#)

Visual Basic

In Visual Basic wird der Handler an das Ereignis eines Steuerelements in der CodeBehind-Datei des Formulars angefügt, in dem der Ereignishandlercode deklariert wird. Mehrere Handles-Schlüsselwörter können dem Ereignishandlercode hinzugefügt werden, um ihn mit mehreren Ereignissen zu verwenden. Visual Designer generiert das Handles-Schlüsselwort für Sie und fügt es dem Ereignis hinzu. Sie können dies jedoch ganz einfach selbst am Ereignis eines Steuerelements und am Ereignishandler vornehmen, solange die Signatur der Handlermethode mit dem Ereignis übereinstimmt. Weitere Informationen zu Visual Basic-Ereignissen finden Sie unter Ereignisse (Visual Basic)

Dieser Code veranschaulicht, wie die gleiche Methode als Handler für zwei verschiedene Button.Click-Ereignisse verwendet werden kann:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button2.Click
    'Do some work to handle the events
End Sub

Siehe auch