Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Händelser för kontroller (och för formulär) anges vanligtvis via Visual Studio Visual Designer för Windows-formulär. Att ange en händelse via Visual Designer kallas för att hantera en händelse vid designtillfället. Du kan också hantera händelser dynamiskt i kod, så kallade hanteringshändelser vid körning. En händelse som skapas under körning gör det möjligt att ansluta händelsehanterare dynamiskt beroende på vad din app gör just nu.
Hantera en händelse under designfasen
I Visual Studio använder du Visual Designer för att hantera hanterare för kontrollhändelser. Visual Designer genererar hanteringskoden och lägger till den i händelsen åt dig.
Ange hanteraren
Använd fönstret Egenskaper för att lägga till eller ange hanteraren för en händelse:
Öppna visualiseringsdesignern för formuläret som innehåller kontrollen som ska ändras.
Välj kontrollen.
Ändra egenskaper fönsterläge till Händelser genom att trycka på knappen händelser (
 ).Hitta den händelse du vill lägga till en hanterare till, till exempel Klick händelsen.
              
              
            
Gör något av följande:
Dubbelklicka på händelsen för att generera en ny hanterare. Den är tom om ingen hanterare har tilldelats. Om den inte är tom öppnar den här åtgärden koden för formuläret och navigerar till den befintliga hanteraren.
Använd markeringsrutan (
 ) för att välja en befintlig hanterare.I markeringsrutan visas alla metoder som har en kompatibel metodsignatur för händelsehanteraren.
Rensa hanteraren
Om du vill ta bort en händelsehanterare kan du inte bara ta bort hanteringskoden som finns i formulärets kod bakom-fil, den refereras fortfarande av designern. Använd fönstret Egenskaper för att ta bort hanteraren för en händelse:
Öppna visualiseringsdesignern för formuläret som innehåller kontrollen som ska ändras.
Välj kontrollen.
Ändra egenskaper fönsterläge till Händelser genom att trycka på knappen händelser (
 ).Leta reda på händelsen som innehåller den hanterare som du vill ta bort, till exempel Klicka på händelse:
              
              
            
Högerklicka på händelsen och välj Återställ.
Hantera en händelse vid körning
Du lägger vanligtvis till händelsehanterare i kontroller vid designtid via Visual Designer. Du kan dock skapa kontroller vid körning, vilket kräver att du lägger till händelsehanterare i kod. Genom att lägga till hanterare i kod kan du också lägga till flera hanterare i samma händelse.
Lägga till en hanterare
I följande exempel visas hur du skapar en kontroll och lägger till en händelsehanterare. Den här kontrollen skapas i Button.Click-händelsehanteraren för en annan knapp. När Knapp1 trycks. Koden flyttar och storleksanpassar en ny knapp. Den nya knappens Click händelse hanteras av metoden MyNewButton_Click. För att den nya knappen ska visas läggs den till i formulärets Controls samling. Det finns också kod för att ta bort hanteraren för Button1.Click händelse. Detta beskrivs i avsnittet Ta bort hanteraren.
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
Kör den här koden genom att göra följande i ett formulär med Visual Studio Visual Designer:
- Lägg till en ny knapp i formuläret och ge det namnet Button1.
 - Ändra egenskaper fönsterläge till Händelser genom att trycka på händelseknappen (
 ). - Dubbelklicka på Klicka på-händelsen för att generera en hanterare. Den här åtgärden öppnar kodfönstret och genererar en tom 
Button1_Clickmetod. - Ersätt metodkoden med föregående kod ovan.
 
Mer information om C#-händelser finns i Events (C#) Mer information om Visual Basic-händelser finns i Events (Visual Basic)
Ta bort hanteraren
Avsnittet Lägg till en hanterare använde viss kod för att visa hur du lägger till en hanterare. Koden innehöll också ett anrop för att ta bort en hanterare:
button1.Click -= button1_Click;
RemoveHandler Button1.Click, AddressOf Button1_Click
Den här syntaxen kan användas för att ta bort alla händelsehanterare från alla händelser.
Mer information om C#-händelser finns i Events (C#) Mer information om Visual Basic-händelser finns i Events (Visual Basic)
Använda flera händelser med samma hanterare
Med visualiseringsdesignerns egenskaper fönstret kan du välja samma hanterare som redan används av en annan händelse. Följ anvisningarna i avsnittet Ange hanteraren för att välja en befintlig hanterare i stället för att skapa en ny.
I C# är hanteraren kopplad till en kontrolls händelse i formulärets designerkod, som ändrades via Visual Designer. Mer information om C#-händelser finns i Händelser (C#)
Visual Basic
I Visual Basic är hanteraren kopplad till en kontrolls händelse i formulärets kod bakom-fil, där händelsehanterarkoden deklareras. Flera Handles nyckelord kan läggas till i händelsehanterarkoden för att använda den med flera händelser. Visual Designer genererar nyckelordet Handles åt dig och lägger till det i händelsehanteraren. Du kan dock enkelt göra detta själv på vilken kontrolls händelse som helst och dess händelsehanterare, så länge signaturen för hanteringsmetoden matchar händelsen. Mer information om Visual Basic-händelser finns i Events (Visual Basic)
Den här koden visar hur samma metod kan användas som hanterare för två olika Button.Click händelser:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button2.Click
    'Do some work to handle the events
End Sub
Se även
.NET Desktop feedback