Zdarzenia. NET-czym są object sender & EventArgs e?

Co oznaczają sender i eventArgs? Jak mogę z nich skorzystać (Dla poniższego scenariusza)?

Scenariusz:

Próbuję zbudować niestandardową kontrolę z funkcją delete i chcę mieć możliwość usunięcia kontrolki, która została kliknięta na stronie, która zawiera wiele tej samej kontroli niestandardowej.

Author: Albireo, 2009-08-20

5 answers

Nadawca jest kontrolką, dla której jest przeznaczona akcja(powiedzmy OnClick, to przycisk).

EventArgs są argumentami, które implementator tego zdarzenia może uznać za użyteczne. W OnClick nie zawiera nic dobrego, ale w niektórych zdarzeniach, jak np. w widoku GridView 'SelectedIndexChanged', będzie zawierał nowy indeks lub inne przydatne dane.

Chris mówi, że możesz to zrobić:

protected void someButton_Click (object sender, EventArgs ea)
{
    Button someButton = sender as Button;
    if(someButton != null)
    {
        someButton.Text = "I was clicked!";
    }
}
 80
Author: Noon Silk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-20 04:50:56

sender odnosi się do obiektu, który wywołał zdarzenie, które wywołało procedurę obsługi zdarzenia. Jest to przydatne, jeśli masz wiele obiektów korzystających z tej samej procedury obsługi zdarzenia.

EventArgs jest czymś w rodzaju atrapy podstawowej klasy. Samo w sobie jest mniej lub bardziej bezużyteczne, ale jeśli z niego korzystasz, możesz dodać wszystkie dane, które musisz przekazać do procesów obsługi zdarzeń.

Kiedy implementujesz własne zdarzenia, użyj EventHandler lub EventHandler<T> jako ich typu. Gwarantuje to, że będziesz miał dokładnie te dwa parametry dla wszystkie twoje wydarzenia (co jest dobrą rzeczą).

 19
Author: Matthew Scharley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-16 19:54:35

Ręcznie Wrzuć nadawcę do typu niestandardowej kontroli, a następnie użyj go do usunięcia lub wyłączenia itp. Np. coś takiego:

private void myCustomControl_Click(object sender, EventArgs e)
{
  ((MyCustomControl)sender).DoWhatever();
}

"nadawca" jest tylko obiektem, który został aktywowany (np. kliknięty).

Args zdarzeń jest podkategoryzowany dla bardziej złożonych kontrolek, np. treeview, dzięki czemu możesz wiedzieć więcej szczegółów o zdarzeniu, np. dokładnie gdzie kliknięto.

 8
Author: Chris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-19 23:26:10
  1. 'sender' nazywa się obiekt, który ma jakąś akcję wykonywaną na jakimś kontrola

  2. 'event" posiada pewne informacje o kontroli, która ma niektóre zachowania i tożsamość wykonują przez jakiegoś użytkownika.kiedy akcja będzie Wygeneruj przez occuring dla event add przechowywany w tablicy nazywa się event agrs

 5
Author: rajeev kumar singh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-20 16:18:18

FYI, sender i e nie są specyficzne dla ASP.NET lub do C#. Zobacz Events (C# Programming Guide) i Events w Visual Basic .

 4
Author: John Saunders,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-19 23:51:59