Delen via


Hoe een controle-gebeurtenis afhandelen

Gebeurtenissen voor besturingselementen (en voor formulieren) worden over het algemeen ingesteld via Visual Studio Visual Designer voor Windows Forms. Het instellen van een gebeurtenis via de Visual Designer wordt ook wel het omgaan met een gebeurtenis tijdens de ontwerpfase genoemd. U kunt gebeurtenissen ook dynamisch verwerken in code, ook wel gebeurtenissen verwerken tijdens runtime. Met een gebeurtenis die tijdens runtime is gemaakt, kunt u dynamisch gebeurtenis-handlers verbinden op basis van wat uw app momenteel doet.

Een gebeurtenis tijdens ontwerptijd verwerken

In Visual Studio gebruikt u Visual Designer om handlers te beheren voor controle-gebeurtenissen. Visual Designer genereert de handlercode en voegt deze toe aan de gebeurtenis voor u.

De handler instellen

Gebruik het deelvenster Eigenschappen om de handler van een gebeurtenis toe te voegen of in te stellen:

  1. Open de Visual Designer van het formulier met het besturingselement dat u wilt wijzigen.

  2. Selecteer het besturingselement.

  3. Wijzig de modus Eigenschappenvenster in Gebeurtenissen door op de knop Gebeurtenissen ( ) te drukken.

  4. Zoek de gebeurtenis waaraan u een handler wilt toevoegen, bijvoorbeeld de gebeurtenis Klik :

    Het eigenschappenpaneel van Visual Studio wordt weergegeven met de gebeurtenissenmodus ingeschakeld en de klikgebeurtenis.

  5. Ga op een van de volgende manieren te werk:

    • Dubbelklik op de gebeurtenis om een nieuwe handler te genereren. Deze is leeg als er geen handler is toegewezen. Als deze niet leeg is, wordt met deze actie de code voor het formulier geopend en gaat u naar de bestaande handler.

    • Gebruik het selectievak ( ) om een bestaande handler te kiezen.

      In het selectievak worden alle methoden weergegeven met een compatibele methodehandtekening voor de gebeurtenis-handler.

De handler wissen

Als u een event handler wilt verwijderen, kunt u niet gewoon de handlercode verwijderen die zich in het code-behind-bestand van het formulier bevindt, omdat er nog steeds door de ontwerper naar wordt verwezen. Gebruik het deelvenster Eigenschappen om de handler van een gebeurtenis te verwijderen:

  1. Open de Visual Designer van het formulier met het besturingselement dat u wilt wijzigen.

  2. Selecteer het besturingselement.

  3. Wijzig de modus Eigenschappenvenster in Gebeurtenissen door op de knop Gebeurtenissen ( ) te drukken.

  4. Zoek de gebeurtenis met de handler die u wilt verwijderen, bijvoorbeeld de klik-gebeurtenis :

    Het eigenschappenpaneel van Visual Studio wordt weergegeven met de gebeurtenissenmodus ingeschakeld en de klikgebeurtenis.

  5. Klik met de rechtermuisknop op de gebeurtenis en kies Opnieuw instellen.

Een gebeurtenis tijdens runtime verwerken

Doorgaans voegt u gebeurtenis-handlers toe aan besturingselementen tijdens het ontwerp via Visual Designer. U kunt echter tijdens runtime besturingselementen maken. Hiervoor moet u gebeurtenis-handlers toevoegen in code. Als u handlers in code toevoegt, krijgt u ook de mogelijkheid om meerdere handlers toe te voegen aan dezelfde gebeurtenis.

Een handler toevoegen

In het volgende voorbeeld ziet u hoe u een besturingselement maakt en een gebeurtenis-handler toevoegt. Dit besturingselement wordt gemaakt in de Button.Click gebeurtenis-handler met een andere knop. Wanneer knop1 wordt ingedrukt. Met de code wordt een nieuwe knop verplaatst en van grootte veranderd. Het Click-evenement van de nieuwe knop wordt afgehandeld door de MyNewButton_Click-methode. Als u de nieuwe knop wilt weergeven, wordt deze toegevoegd aan de verzameling van Controls het formulier. Er is ook code om de handler van de Button1.Click gebeurtenis te verwijderen. Dit wordt besproken in de sectie De handler verwijderen .

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

Als u deze code wilt uitvoeren, gaat u als volgt te werk in een formulier met Visual Studio Visual Designer:

  1. Voeg een nieuwe knop toe aan het formulier en geef het knop1 een naam.
  2. Wijzig de modus Eigenschappenvenster in Gebeurtenissen door op de knop Gebeurtenis ( ) te drukken.
  3. Dubbelklik op de klikgebeurtenis om een handler te genereren. Met deze actie wordt het codevenster geopend en wordt een lege Button1_Click methode gegenereerd.
  4. Vervang de methodecode door de vorige code hierboven.

Zie Gebeurtenissen (C#) voor meer informatie over C#-gebeurtenissen voor meer informatie over Visual Basic-gebeurtenissen.

De handler verwijderen

De sectie Een handler toevoegen heeft code gebruikt om het toevoegen van een handler te demonstreren. Deze code bevatte ook een aanroep om een handler te verwijderen:

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

Deze syntaxis kan worden gebruikt om elke gebeurtenishandler uit elke gebeurtenis te verwijderen.

Zie Gebeurtenissen (C#) voor meer informatie over C#-gebeurtenissen voor meer informatie over Visual Basic-gebeurtenissen.

Meerdere gebeurtenissen gebruiken met dezelfde handler

Met het deelvenster Eigenschappen van Visual Studio Visual Designer kunt u dezelfde handler selecteren die al door een andere gebeurtenis wordt gebruikt. Volg de aanwijzingen in de sectie Handler instellen om een bestaande handler te selecteren in plaats van een nieuwe handler te maken.

In C# wordt de handler gekoppeld aan de gebeurtenis van een besturingselement in de ontwerpcode van het formulier, die is gewijzigd via Visual Designer. Zie Gebeurtenissen (C#) voor meer informatie over C#-gebeurtenissen

Visual Basic

In Visual Basic wordt de handler gekoppeld aan een event van een besturingselement in de code-file achter het formulier, waar de event-handlercode wordt gedeclareerd. Er kunnen meerdere Handles trefwoorden worden toegevoegd aan de code van de gebeurtenis-handler om deze te gebruiken met meerdere gebeurtenissen. Visual Designer genereert het Handles trefwoord voor u en voegt het toe aan de gebeurtenis-handler. U kunt dit echter eenvoudig zelf doen voor de gebeurtenis en gebeurtenis-handler van elk besturingselement, zolang de handtekening van de handlermethode overeenkomt met de gebeurtenis. Zie Gebeurtenissen (Visual Basic) voor meer informatie over Visual Basic-gebeurtenissen

Deze code laat zien hoe dezelfde methode kan worden gebruikt als een handler voor twee verschillende Button.Click gebeurtenissen:

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

Zie ook