Es ist wichtig zu beachten, dass eine Event-Methode mehrere Events abwickeln kann. Dabei müssen die Events nicht unbedingt von demselben Objekt ausgelöst werden. Auf diese Weise lässt sich die Verarbeitung einer bestimmten Reihe von Events mühelos zusammenfassen – z.B. alle Klick-Events für eine Reihe verschiedener Steuerelemente. Der Senderparameter in der Event-Methode kann genutzt werden um festzustellen, welches Objekt das Event ausgelöst hat, und das Event entsprechend abwickeln. (Die Nutzung des Senderparameters auf diese Weise kann Type Casting erfordern, was in künftigen Artikeln näher erläutert wird.)
Das Events-Feld kann auch dazu benutzt werden, um die auf ein bestimmtes Event antwortende Methode zu benennen. Hierzu wird der gewünschte Name in der rechten Spalte wie in Abbildung D gezeigt eingegeben
Abbildung D: Die vorgegebenen Namen von Events können überschrieben werden.
Wird das SizeChanged-Event der Form als IcanNameThisWhatIWant bezeichnet, wird das folgende Gerüst für das SizeChanged-Event generiert:
this.SizeChanged += new System.EventHandler (this.ICanNameThisWhatIWant); ... private void ICanNameThisWhatIWant(object sender, System.EventArgs e) { }
Auch hier lässt sich Code, der eine Meldung anzeigt (oder einen anderen Task ausführt), der Event-Methode einfach hinzufügen:
private void ICanNameThisWhatIWant(object sender, System.EventArgs e) { MessageBox.Show ("Named my way!", "C# für Einsteiger", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); }
Wird das Event nach Installation dieses Codes nun durch ein SizeChanged-Event ausgelöst, wird der Code in der IcanNameThisWhatIWant-Methode ausgeführt und die gewünschte Meldung angezeigt.
Einblick in das Innenleben von Events
In diesem Artikel wurde der von der Entwicklungsumgebung generierte Code hervorgehoben. Weshalb eigentlich? Man sollte den Code, auf dem Events basieren, verstehen. Die VDE-Entwicklungsumgebung bietet nicht gerade viel auf diesem Gebiet, und oftmals ist es einfacher, die Registerkarte Events zu ignorieren und mit Code zu arbeiten. Warum sich mit der Autogenerierung herumschlagen, wenn man die Grundlagen des Codes beherrscht?
All dies ist ziemlich nützlich, wenn man mit den üblichen Events auskommt, die mit Objekten wie z.B. Forms und Buttons mitgeliefert werden. Was aber, wenn man Klassen mit eigenen Events erstellen möchte? Wie werden maßgeschneiderte Events ausgelöst? Wo ist der Code für diese Events unterzubringen? Die Antworten auf diese Fragen sind im zweiten Teil dieser Serie zu finden.
Neueste Kommentare
Noch keine Kommentare zu Arbeiten mit Events in C#
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.