Udostępnij za pośrednictwem


Jak obsługiwać zdarzenie sterujące

Zdarzenia dla kontrolek (i formularzy) są zwykle ustawiane za pomocą programu Visual Studio Visual Designer for Windows Forms. Ustawianie zdarzenia za pośrednictwem Visual Designer jest nazywane obsługą zdarzenia w czasie projektowania. Zdarzenia można również obsługiwać dynamicznie w kodzie, co nazywa się obsługą zdarzeń w czasie wykonywania. Zdarzenie utworzone w czasie wykonywania umożliwia dynamiczne łączenie procedur obsługi zdarzeń na podstawie tego, co obecnie robi Twoja aplikacja.

Obsługa zdarzenia w czasie projektowania

W programie Visual Studio użyj programu Visual Designer, aby zarządzać procedurami obsługi zdarzeń sterowania. Projektant wizualny wygeneruje kod obsługi i doda go do zdarzenia.

Ustaw program obsługi

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

  1. Otwórz projektanta wizualnego formularza zawierającego kontrolkę, którą chcesz zmienić.

  2. Wybierz kontrolkę.

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

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

    okienko właściwości programu Visual Studio wyświetlane z włączonym trybem zdarzeń i zdarzeniem kliknięcia.

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

    • Kliknij dwukrotnie zdarzenie, aby wygenerować nową procedurę obsługi; pozostanie puste, jeśli nie przypisano żadnej procedury obsługi. Jeśli nie jest pusty, ta akcja otwiera kod formularza i przechodzi 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ść uchwyt

Aby usunąć obsługi zdarzeń, nie wystarczy po prostu usunąć kod obsługi znajdujący się w pliku kodu zaplecza formularza, ponieważ projektant wciąż na niego się odwołuje. Użyj okienka właściwości , aby usunąć obsługę zdarzenia:

  1. Otwórz projektanta wizualnego formularza zawierającego kontrolkę, którą chcesz zmienić.

  2. Wybierz kontrolkę.

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

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

    okienko właściwości programu Visual Studio wyświetlane z włączonym trybem zdarzeń i zdarzeniem kliknięcia.

  5. Kliknij prawym przyciskiem myszy zdarzenie i wybierz pozycję Resetuj.

Obsługa zdarzenia w czasie wykonywania

Procedury obsługi zdarzeń są zwykle dodawane do kontrolek w czasie projektowania za pomocą Projektanta Wizualnego. 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.

Dodaj program obsługi

W poniższym przykładzie pokazano, jak utworzyć kontrolkę i dodać procedurę obsługi zdarzeń. Ta kontrolka jest tworzona w programie obsługi zdarzeń Button.Click innym przyciskiem. Po naciśnięciu przycisku Przycisk1. Kod przenosi i zmienia rozmiar nowego przycisku. Zdarzenie Click nowego przycisku jest obsługiwane przez metodę MyNewButton_Click. Aby wyświetlić nowy przycisk, zostanie on dodany do kolekcji Controls formularza. Istnieje również kod służący do usuwania programu obsługi zdarzenia Button1.Click, który jest omówiony w sekcji dotyczącej usuwania programu 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 Designer:

  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 Kliknij, aby wygenerować procedurę obsługi. Ta akcja powoduje otwarcie okna kodu i wygenerowanie pustej metody Button1_Click.
  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 Events (Visual Basic)

Usuwanie programu obsługi

Sekcja Dodaj procedurę obsługi wykorzystała kod do zademonstrowania, jak dodać procedurę 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 Events (Visual Basic)

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

Korzystając z okienka właściwości programu Visual Studio Visual Designer, możesz wybrać tę samą procedurę obsługi, która jest już używana przez inne zdarzenie. Postępuj zgodnie z instrukcjami w sekcji Ustaw program obsługi, aby wybrać istniejący program obsługi zamiast tworzyć nowy.

W języku C# program obsługi jest dołączany do zdarzenia kontrolki w kodzie projektanta formularza, który zmienił się za pomocą projektanta wizualnego. Aby uzyskać więcej informacji na temat zdarzeń C#, zobacz Events (C#)

Visual Basic

W języku Visual Basic procedura obsługi jest dołączana do zdarzenia kontrolki w pliku code-behind formularza, gdzie zadeklarowany jest kod procedury obsługi zdarzeń. Do kodu procedury obsługi zdarzeń można dodać wiele słów kluczowych Handles, aby używać ich z wieloma zdarzeniami. Projektant graficzny wygeneruje słowo kluczowe Handles i doda je do programu obsługi zdarzeń. Można to jednak łatwo zrobić samodzielnie dla dowolnego zdarzenia i procedury obsługi kontrolki, o ile sygnatura metody obsługi jest zgodna ze zdarzeniem. Aby uzyskać więcej informacji na temat zdarzeń języka Visual Basic, zobacz Events (Visual Basic)

Ten kod pokazuje, jak ta sama metoda może być używana jako procedura obsługi dla dwóch różnych zdarzeń Button.Click:

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 także