Was bedeuten Absender und eventArgs? Wie kann ich sie nutzen (für das folgende Szenario)?
Szenario:
Ich versuche, ein benutzerdefiniertes Steuerelement mit einer Löschfunktion zu erstellen, und ich möchte das Steuerelement löschen können, auf das auf einer Seite geklickt wurde, die viele der gleichen benutzerdefinierten Steuerelemente enthält.
.net
events
event-handling
stringo0
quelle
quelle
Antworten:
Der Absender ist das Steuerelement, für das die Aktion bestimmt ist (z. B. OnClick, es ist die Schaltfläche).
Die EventArgs sind Argumente, die der Implementierer dieses Ereignisses möglicherweise nützlich findet. Mit OnClick enthält es nichts Gutes, aber in einigen Fällen, wie beispielsweise in einer GridView 'SelectedIndexChanged', enthält es den neuen Index oder andere nützliche Daten.
Was Chris sagt, ist, dass Sie dies tun können:
protected void someButton_Click (object sender, EventArgs ea) { Button someButton = sender as Button; if(someButton != null) { someButton.Text = "I was clicked!"; } }
quelle
sender
bezieht sich auf das Objekt, das das Ereignis aufgerufen hat, das den Ereignishandler ausgelöst hat. Dies ist nützlich, wenn Sie viele Objekte haben, die denselben Ereignishandler verwenden.EventArgs
ist so etwas wie eine Dummy-Basisklasse. An und für sich ist es mehr oder weniger nutzlos, aber wenn Sie daraus ableiten, können Sie alle Daten hinzufügen, die Sie an Ihre Event-Handler übergeben müssen.Wenn Sie Ihre eigenen Ereignisse implementieren, verwenden Sie ein
EventHandler
oderEventHandler<T>
als deren Typ. Dies garantiert, dass Sie genau diese beiden Parameter für alle Ihre Veranstaltungen haben (was eine gute Sache ist).quelle
Verwandeln Sie den Absender manuell in den Typ Ihres benutzerdefinierten Steuerelements und verwenden Sie ihn dann zum Löschen oder Deaktivieren usw. Beispiel: So etwas:
private void myCustomControl_Click(object sender, EventArgs e) { ((MyCustomControl)sender).DoWhatever(); }
Der 'Absender' ist nur das Objekt, das bearbeitet wurde (z. B. geklickt).
Die Ereignisargumente werden für komplexere Steuerelemente, z. B. eine Baumansicht, in Unterklassen unterteilt, damit Sie mehr Details über das Ereignis erfahren können, z. B. genau, wo sie angeklickt haben.
quelle
'Absender' wird als Objekt bezeichnet, bei dem eine Aktion für ein Steuerelement ausgeführt wird
'event' enthält einige Informationen über die Steuerung, deren Verhalten und Identität von einem Benutzer ausgeführt wird. Wenn eine Aktion durch Auftreten eines Ereignisses generiert wird, wird das Hinzufügen innerhalb des Arrays als event agrs bezeichnet
quelle
Zu Ihrer Information,
sender
unde
sind nicht spezifisch für ASP.NET oder C #. Siehe Ereignisse (C # -Programmierhandbuch) und Ereignisse in Visual Basic .quelle