Jak obsługiwać zdarzenie sterujące (Windows Forms .NET)

Zdarzenia dla kontrolek (i formularzy) są zwykle ustawiane za pomocą programu Visual Studio Visual Projektant for Windows Forms. Ustawianie zdarzenia za pomocą Projektant wizualizacji jest nazywane obsługą zdarzenia w czasie projektowania. Zdarzenia można również obsługiwać dynamicznie w kodzie, nazywanym obsługą zdarzeń w czasie wykonywania. Zdarzenie utworzone w czasie wykonywania umożliwia dynamiczne łączenie programów obsługi zdarzeń na podstawie aktualnie wykonywanej aplikacji.

Ważne

Dokumentacja przewodnika dla komputerów dla platform .NET 7 i .NET 6 jest w budowie.

Obsługa zdarzenia — projektant

W programie Visual Studio użyj programu Visual Projektant do zarządzania procedurami obsługi zdarzeń sterowania. Program Visual Projektant wygeneruje kod obsługi i doda go do zdarzenia.

Ustawianie programu obsługi

Użyj okienka Właściwości , aby dodać lub ustawić procedurę obsługi zdarzenia:

  1. Otwórz Projektant wizualizacji formularza zawierającego kontrolkę, aby zmienić.

  2. Wybierz kontrolkę.

  3. Zmień tryb okienka Właściwości na Zdarzenia, naciskając przycisk zdarzeń ( ).

  4. Znajdź zdarzenie, do którego chcesz dodać procedurę obsługi, na przykład zdarzenie Click :

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

  5. Wykonaj jedną z następujących czynności:

    • Kliknij dwukrotnie zdarzenie, aby wygenerować nową procedurę obsługi, jest puste, jeśli nie przypisano procedury obsługi. Jeśli ta akcja nie jest pusta, spowoduje to otwarcie kodu formularza i przejście do istniejącego programu obsługi.

    • Użyj pola wyboru ( ), aby wybrać istniejącą procedurę obsługi.

      Pole wyboru zawiera listę wszystkich metod, które mają zgodny podpis metody dla procedury obsługi zdarzeń.

Wyczyść procedurę obsługi

Aby usunąć program obsługi zdarzeń, nie można po prostu usunąć kodu programu obsługi znajdującego się w pliku kodu formularza, do którego nadal odwołuje się zdarzenie. Użyj okienka Właściwości , aby usunąć procedurę obsługi zdarzenia:

  1. Otwórz Projektant wizualizacji formularza zawierającego kontrolkę, aby zmienić.

  2. Wybierz kontrolkę.

  3. Zmień tryb okienka Właściwości na Zdarzenia, naciskając przycisk zdarzeń ( ).

  4. Znajdź zdarzenie zawierające procedurę obsługi, którą chcesz usunąć, na przykład zdarzenie Kliknij :

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

  5. Kliknij prawym przyciskiem myszy zdarzenie i wybierz polecenie Resetuj.

Obsługa zdarzenia — kod

Zazwyczaj programy obsługi zdarzeń są dodawane do kontrolek w czasie projektowania za pośrednictwem programu Visual Projektant. Można jednak tworzyć kontrolki w czasie wykonywania, co wymaga dodania procedur obsługi zdarzeń w kodzie. Dodanie programów obsługi w kodzie daje również możliwość dodania wielu programów obsługi do tego samego zdarzenia.

Dodawanie programu obsługi

W poniższym przykładzie pokazano, jak utworzyć kontrolkę i dodać procedurę obsługi zdarzeń. Ta kontrolka jest tworzona w procedurze Button.Click obsługi zdarzeń innym przyciskiem. Po naciśnięciu przycisku Button1 . Kod przenosi i zmienia rozmiar nowego przycisku. Zdarzenie nowego przycisku Click jest obsługiwane przez metodę MyNewButton_Click . Aby wyświetlić nowy przycisk, zostanie on dodany do kolekcji formularza Controls . Istnieje również kod umożliwiający usunięcie Button1.Click programu obsługi zdarzeń. Jest on omówiony w sekcji Usuń procedurę obsługi .

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

Aby uruchomić ten kod, wykonaj następujące czynności w formularzu za pomocą programu Visual Studio Visual Projektant:

  1. Dodaj nowy przycisk do formularza i nadaj mu nazwę Button1.
  2. Zmień tryb okienka Właściwości na Zdarzenia, naciskając przycisk zdarzenia ( ).
  3. Kliknij dwukrotnie zdarzenie Click, aby wygenerować procedurę obsługi. Ta akcja powoduje otwarcie okna kodu i wygenerowanie pustej Button1_Click metody.
  4. Zastąp kod metody poprzednim kodem.

Aby uzyskać więcej informacji na temat zdarzeń języka C#, zobacz Zdarzenia (C#) Aby uzyskać więcej informacji na temat zdarzeń języka Visual Basic, zobacz Zdarzenia (Visual Basic)

Usuwanie programu obsługi

Sekcja Dodawanie procedury obsługi użyła kodu, aby zademonstrować dodawanie procedury obsługi. Ten kod zawierał również wywołanie w celu usunięcia procedury obsługi:

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

Ta składnia może służyć do usuwania dowolnej procedury obsługi zdarzeń z dowolnego zdarzenia.

Aby uzyskać więcej informacji na temat zdarzeń języka C#, zobacz Zdarzenia (C#) Aby uzyskać więcej informacji na temat zdarzeń języka Visual Basic, zobacz Zdarzenia (Visual Basic)

Jak używać wielu zdarzeń z tą samą procedurą obsługi

W okienku Właściwości programu Visual Studio Visual Projektant można wybrać tę samą procedurę obsługi, która jest już używana przez inne zdarzenie. Postępuj zgodnie z instrukcjami w sekcji Ustawianie procedury obsługi, aby wybrać istniejącą procedurę obsługi zamiast tworzyć nowe.

W języku C# program obsługi jest dołączany do zdarzenia kontrolki w kodzie projektanta formularza, który zmienił się za pośrednictwem programu Visual Projektant. Aby uzyskać więcej informacji na temat zdarzeń języka C#, zobacz Zdarzenia (C#)

Visual Basic

W języku Visual Basic program obsługi jest dołączany do zdarzenia kontrolki w pliku za pomocą kodu formularza, w którym zadeklarowany jest kod programu obsługi zdarzeń. Do kodu programu obsługi zdarzeń można dodać wiele Handles słów kluczowych, aby używać ich z wieloma zdarzeniami. Wizualizacja Projektant wygeneruje Handles słowo kluczowe i doda je do programu obsługi zdarzeń. Można to jednak łatwo zrobić samodzielnie dla dowolnego programu obsługi zdarzeń i zdarzeń kontrolki, o ile podpis metody obsługi jest zgodny ze zdarzeniem. Aby uzyskać więcej informacji na temat zdarzeń języka Visual Basic, zobacz Zdarzenia (Visual Basic)

Ten kod pokazuje, jak można użyć tej samej metody jako procedury obsługi dla dwóch różnych Button.Click zdarzeń:

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

Zobacz też