Ausführung von Ereignis-Prozeduren temporär unterbinden

16/03/2010 - 06:58 von Reiner Wolff | Report spam
Moin moin,

dies ist die Fortführung wegen Themenwechsel von:
TreeNode-Checkbox-Änderung verhindern, vom 14.03.2010 22:45:22
Message-ID: <ylfxwdw2mi3o$.dlg@wolffsrudel.de>

Wenn ich per Code zB die Checked-Eigenschaft einer Checkbox setze, beim
CheckChanged-Ereignis eigenen Code hinterlegt habe, den ich aber im Falle,
dass mein Code die Eigenschaft àndert nicht ausgeführt haben möchte.
Wie sieht das Best Practice für solche Fàlle aus?

RemoveHandler/AddHandler?
KlassenVariable, die bei CheckChanged zum Abbruch führt?
Andere Varianten?

Vielen Dank für Eure Ideen.

Gruß aus Kiel
Reiner
Wenn eine Idee nicht zuerst absurd erscheint, taugt sie nichts.
(Albert Einstein)
 

Lesen sie die antworten

#1 Peter Fleischer
16/03/2010 - 07:14 | Warnen spam
"Reiner Wolff" schrieb im Newsbeitrag
news:1i7mh7b3qoc3y$
...
Wenn ich per Code zB die Checked-Eigenschaft einer Checkbox setze, beim
CheckChanged-Ereignis eigenen Code hinterlegt habe, den ich aber im Falle,
dass mein Code die Eigenschaft àndert nicht ausgeführt haben möchte.
Wie sieht das Best Practice für solche Fàlle aus?



Hi Reiner,
wo die Abarbeitung einer Prozedur im Falle des Auslösens eines Ereignisses
am besten unterdrückt wird, hàngt vor allem von deiner Aufgabenstellung ab.

RemoveHandler/AddHandler?



Damit delegierst du das Unterdrücken zum Aufrufer, der bei fehlendem
Delegate (zur Ereignisroutine) diesen Delegate einfach nicht ausführen kann.

KlassenVariable, die bei CheckChanged zum Abbruch führt?



Abbruch ist die denkbar ungünstigste Variante, da in diesem Fall die
übergeordnete Fehlerbehandlung aktiviert wird. Besser ist es, anstelle eines
Abbruchs den Code in der Ereignisroutine nicht auszuführen (überspringen).

Andere Varianten?



Zwischenschalten einer Routine, die das Ereignis empfàngt und dann
entscheidet, ob die eigentliche Ereignisroutine auch aufgerufen werden soll.

Viele Gruesse

Peter

Ähnliche fragen