Share via


Zpracování řídicí události (model Windows Forms .NET)

Události ovládacích prvků (a formulářů) jsou obecně nastaveny prostřednictvím visual studio visual designeru pro model Windows Forms. Nastavení události prostřednictvím vizuálního návrháře se označuje jako zpracování události v době návrhu. Události můžete také zpracovávat dynamicky v kódu, označované jako zpracování událostí za běhu. Událost vytvořená za běhu umožňuje dynamicky připojit obslužné rutiny událostí na základě toho, co vaše aplikace právě dělá.

Důležité

Dokumentace k desktopové příručce pro .NET 7 a .NET 6 se právě připravuje.

Zpracování události – návrhář

V sadě Visual Studio můžete pomocí vizuálního návrháře spravovat obslužné rutiny pro události ovládacích prvků. Vizuální návrhář vygeneruje kód obslužné rutiny a přidá ho do události za vás.

Nastavení obslužné rutiny

Pomocí podokna Vlastnosti přidejte nebo nastavte obslužnou rutinu události:

  1. Otevřete vizuální návrhář formuláře obsahujícího ovládací prvek, který chcete změnit.

  2. Vyberte ovládací prvek.

  3. Změňte režim podokna Vlastnosti na Události stisknutím tlačítka události ( ).

  4. Vyhledejte událost, do které chcete přidat obslužnou rutinu , například do události Click :

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

  5. Proveďte jeden z těchto možných postupů:

    • Poklikáním na událost vygenerujte novou obslužnou rutinu, pokud není přiřazena žádná obslužná rutina. Pokud není prázdná, tato akce otevře kód formuláře a přejde na existující obslužnou rutinu.

    • Pomocí pole pro výběr ( ) zvolte existující obslužnou rutinu.

      Pole pro výběr zobrazí seznam všech metod, které mají kompatibilní podpis metody pro obslužnou rutinu události.

Vymazání obslužné rutiny

Pokud chcete odebrat obslužnou rutinu události, nemůžete odstranit jenom kód obslužné rutiny, který je v souboru kódu formuláře, na který se stále odkazuje událost. Pomocí podokna Vlastnosti odeberte obslužnou rutinu události:

  1. Otevřete vizuální návrhář formuláře obsahujícího ovládací prvek, který chcete změnit.

  2. Vyberte ovládací prvek.

  3. Změňte režim podokna Vlastnosti na Události stisknutím tlačítka události ( ).

  4. Vyhledejte událost obsahující obslužnou rutinu, kterou chcete odebrat, například událost Click :

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

  5. Klikněte pravým tlačítkem myši na událost a zvolte Obnovit.

Zpracování události – kód

Obslužné rutiny událostí obvykle přidáváte do ovládacích prvků v době návrhu prostřednictvím vizuálního návrháře. Můžete ale vytvořit ovládací prvky za běhu, které vyžadují, abyste do kódu přidali obslužné rutiny událostí. Přidání obslužných rutin v kódu také umožňuje přidat do stejné události více obslužných rutin.

Přidání obslužné rutiny

Následující příklad ukazuje, jak vytvořit ovládací prvek a přidat obslužnou rutinu události. Tento ovládací prvek je vytvořen v obslužné rutině Button.Click události jiné tlačítko. Když je tlačítko1 stisknuto. Kód přesune a zdůstí nové tlačítko. Událost nového tlačítka Click je zpracována metodou MyNewButton_Click . Aby se nové tlačítko zobrazilo, přidá se do kolekce formuláře Controls . Existuje také kód pro odebrání Button1.Click obslužné rutiny události, který je popsán v části Odebrat obslužnou rutinu .

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

Chcete-li spustit tento kód, proveďte následující kroky ve formuláři pomocí Visual Studio Visual Designeru:

  1. Přidejte do formuláře nové tlačítko a pojmenujte ho Button1.
  2. Režim podokna Vlastnosti změňte na Události stisknutím tlačítka události ( ).
  3. Poklikáním na událost Click vygenerujte obslužnou rutinu. Tato akce otevře okno kódu a vygeneruje prázdnou Button1_Click metodu.
  4. Nahraďte kód metody předchozím kódem výše.

Další informace o událostech jazyka C# naleznete v tématu Události (C#) Další informace o událostech jazyka Visual Basic naleznete v tématu Události (Visual Basic)

Odebrání obslužné rutiny

Část Přidat obslužnou rutinu použila kód k předvedení přidání obslužné rutiny. Tento kód obsahoval také volání pro odebrání obslužné rutiny:

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

Tuto syntaxi lze použít k odebrání jakékoli obslužné rutiny události z jakékoli události.

Další informace o událostech jazyka C# naleznete v tématu Události (C#) Další informace o událostech jazyka Visual Basic naleznete v tématu Události (Visual Basic)

Jak používat více událostí se stejnou obslužnou rutinou

V podokně Vlastnosti vizuálního návrháře sady Visual Studio můžete vybrat stejnou obslužnou rutinu, kterou už používá jiná událost. Pokud chcete místo vytvoření nové obslužné rutiny vybrat existující obslužnou rutinu, postupujte podle pokynů v části Nastavit obslužnou rutinu .

V jazyce C# je obslužná rutina připojena k události ovládacího prvku v kódu návrháře formuláře, který se změnil prostřednictvím vizuálního návrháře. Další informace o událostech jazyka C# najdete v tématu Události (C#)

Visual Basic

V jazyce Visual Basic je obslužná rutina připojena k události ovládacího prvku v souboru kódu formuláře, kde je deklarován kód obslužné rutiny události. Do kódu obslužné rutiny události lze přidat více Handles klíčových slov, která se mají použít s více událostmi. Vizuální návrhář vygeneruje Handles klíčové slovo za vás a přidá ho do obslužné rutiny události. Můžete to ale snadno udělat sami pro jakoukoli obslužnou rutinu události ovládacího prvku a obslužnou rutinu události, pokud podpis metody obslužné rutiny odpovídá události. Další informace o událostech jazyka Visual Basic naleznete v tématu Události (Visual Basic)

Tento kód ukazuje, jak lze stejnou metodu použít jako obslužnou rutinu pro dvě různé Button.Click události:

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

Viz také