Sdílet prostřednictvím


Jak řešit řídicí událost

Události ovládacích prvků (a formulářů) jsou obecně nastaveny prostřednictvím visual studio visual designeru pro 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á.

Zpracování události v době návrhu

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.

Nastavte obslužnou rutinu

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 :

    Podokno vlastností sady Visual Studio zobrazené s povoleným režimem událostí a s událostí kliknutí.

  5. Udělejte jednu z těchto věcí:

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

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

      Výběrový seznam zobrazí všechny metody, které mají kompatibilní podpis pro obsluhu události.

Vymazání obslužné rutiny

Chcete-li odebrat obslužnou rutinu události, nemůžete jen odstranit kód obslužné rutiny, který je v souboru kódu formuláře, protože je stále odkazován návrhářem. 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 :

    Podokno vlastností sady Visual Studio zobrazené s povoleným režimem událostí a s událostí kliknutí.

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

Zpracování události za běhu

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řidejte obslužnou rutinu

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, kde se jedná o jiné tlačítko. Když je tlačítko1 stisknuto. Kód přesune a změní velikost nového tlačítka. 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, což je popsáno 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. Dvojitým kliknutí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)

Odstraňte obslužnou rutinu

V části Přidat obslužnou rutinu se použil kód pro demonstraci přidání obslužné rutiny. Tento kód obsahoval také volání k odstranění obslužné rutiny.

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

Tuto syntaxi lze použít k odebrání jakéhokoli obsluhovače 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. 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 procedury události. Můžete to snadno udělat sami pro jakoukoliv událost a obslužnou rutinu ovládacího prvku, 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é