Freigeben über


Umgang mit einem Steuerungsereignis

Ereignisse für Steuerelemente (und für Formulare) werden im Allgemeinen über Visual Studio Visual Designer für Windows Forms festgelegt. Das Festlegen eines Ereignisses über den Visual Designer wird zur Entwurfszeit als Behandlung eines Ereignisses bezeichnet. Sie können Ereignisse auch dynamisch im Code behandeln, was als Ereignisbehandlung zur Laufzeit bezeichnet wird. Ein zur Laufzeit erstelltes Ereignis ermöglicht es Ihnen, Ereignishandler dynamisch je nach aktueller Funktion Ihrer App zu verbinden.

Behandeln eines Ereignisses zur Entwurfszeit

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

Handler einstellen

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

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

  2. Wählen Sie das Steuerelement aus.

  3. Ändern Sie den Eigenschaftenbereichsmodus in Ereignisse , indem Sie die Schaltfläche "Ereignisse" ( ) drücken.

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

    Der Eigenschaftenbereich von Visual Studio wird mit dem aktivierten Ereignismodus und dem Klick-Ereignis angezeigt.

  5. Führen Sie eine der folgenden Aktionen aus:

    • Doppelklicken Sie auf das Ereignis, um einen neuen Handler zu generieren. Wenn kein Handler zugewiesen ist, bleibt es leer. Wenn sie 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.

      Im Auswahlfeld werden alle Methoden aufgelistet, die über eine kompatible Methodensignatur für den Ereignishandler verfügen.

Handler löschen

Um einen Ereignishandler zu entfernen, können Sie nicht einfach den Handlercode löschen, der sich in der CodeBehind-Datei des Formulars befindet, da er immer noch vom Designer referenziert wird. Verwenden Sie den Eigenschaftenbereich , um den Handler eines Ereignisses zu entfernen:

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

  2. Wählen Sie das Steuerelement aus.

  3. Ändern Sie den Eigenschaftenbereichsmodus in Ereignisse , indem Sie die Schaltfläche "Ereignisse" ( ) drücken.

  4. Suchen Sie das Ereignis mit dem Handler, den Sie entfernen möchten, z. B. das Click-Ereignis :

    Der Eigenschaftenbereich von Visual Studio wird mit dem aktivierten Ereignismodus und dem Klick-Ereignis angezeigt.

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

Behandeln eines Ereignisses zur Laufzeit

In der Regel fügen Sie Ereignishandler zu Steuerelementen während der Entwurfsphase über den Visual Designer hinzu. Sie können jedoch Steuerelemente zur Laufzeit erstellen, was es erforderlich macht, Ereignishandler im Code hinzuzufügen. Durch das Hinzufügen von Handlern im Code haben Sie auch die Möglichkeit, demselben Ereignis mehrere Handler hinzuzufügen.

Handler hinzufügen

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 Button1 gedrückt wird. Der Code verschiebt und passt die Größe einer neuen Schaltfläche an. Das Ereignis der neuen Schaltfläche Click wird von der MyNewButton_Click Methode behandelt. Damit die neue Schaltfläche angezeigt wird, wird sie der Auflistung des Formulars Controls hinzugefügt. Es gibt auch Code zum Entfernen des Button1.Click Ereignishandlers. 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

Führen Sie zum Ausführen dieses Codes die folgenden Schritte mit einem Formular mit Visual Studio Visual Designer aus:

  1. Fügen Sie dem Formular eine neue Schaltfläche hinzu, und nennen Sie sie Button1.
  2. Ändern Sie den Eigenschaftenbereichsmodus in Ereignisse , indem Sie die Ereignisschaltfläche ( ) drücken.
  3. Doppelklicken Sie auf das 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 Events (C#) Weitere Informationen zu Visual Basic-Ereignissen finden Sie unter Events (Visual Basic)

Entfernen des Handlers

Der Abschnitt "Handler hinzufügen" hat code verwendet, um das Hinzufügen eines Handlers zu veranschaulichen. Dieser Code enthielt auch einen Aufruf zum Entfernen eines Handlers:

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

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

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

So verwenden Sie mehrere Ereignisse mit demselben Handler

Im Eigenschaftenbereich von Visual Studio 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 den 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 der der Ereignishandlercode deklariert wird. Dem Ereignishandlercode können mehrere Handles Schlüsselwörter hinzugefügt werden, um sie mit mehreren Ereignissen zu verwenden. Der Visual Designer generiert das Handles Schlüsselwort für Sie und fügt es dem Ereignishandler hinzu. Sie können dies jedoch ganz einfach selbst mit dem Ereignis- und Ereignishandler eines Steuerelements tun, solange die Signatur der Handlermethode mit dem Ereignis übereinstimmt. Weitere Informationen zu Visual Basic-Ereignissen finden Sie unter Events (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