ahstax
Goto Top

Read all handler, removehandler, addhandler

Hallo,

Ich suche einen (universellen) Weg, in vb.net in einer Windows-Form alle Handler von Checkboxen, Textboxen, Comboboxen usw zu entfernen. Die entfernten Handler möchte ich später wieder hinzufügen. Ich nehme an, dass ich sie in Schritt 1 (remove) in ein dic oder eine list packen sollte..

Geht das? Kann mir jmd. weiterhelfen?

Neugierige Grüße,
Andreas

Content-ID: 334666

Url: https://administrator.de/contentid/334666

Ausgedruckt am: 25.11.2024 um 20:11 Uhr

emeriks
emeriks 09.04.2017 aktualisiert um 17:58:18 Uhr
Goto Top
Hi,
mal am Rande: Wozu brauchst Du das? Du kannst doch selbst jederzeit mit AddHandler bestimmen, welche EventHandler "aktiviert" sind.

Ansonsten würde ich es in etwa so versuchen:
  1. Eine Funktion, welche mir alle Controls eines Formulars liefert. Rekursiv auch die Child-Controls. Gefiltert nach den Typen, welche mich interessieren.
  2. Eine Routine, welche mir für ein Control die angehängen Eventhandler lierfert. Das müsste über Component.Events gehen. Darüber könnte man die Handler abfragen und irgendwo "zwischenlagern".
  3. Eine Routine, welche mir für ein Control alle angehängten Eventhandler abhängt.
  4. Eine Routine, welche mir für ein Control die in einer Liste übergebenen Eventhandler anhängt.

Aber wie ich eigangs schon erwähnt habe, ist es wahrscheinlich viel einfacher, sich einfach zwei Routinen zu schreiben, die eine zum Anhängen aller gewünschten Handler und die zweite zum Abhängen all dieser. Das sind doch endlich viele und der Aufwand wäre nur einmalig. Das Ganze macht wahrscheinlich nur Sinn, wenn Du konsequent explizit mit "AddHandlers" arbeitest und nicht mittels "Handles" ("Sub xxxxx_yyy(...) Handles xxxxx.yyy")

E.
132895
Lösung 132895 09.04.2017 aktualisiert um 19:23:49 Uhr
Goto Top
Das müsste über Component.Events gehen.
Ganz so einfach ist es nicht an die Events zu kommen
https://www.codeproject.com/Articles/103542/Removing-Event-Handlers-usin ...

hauruck
ahstax
ahstax 09.04.2017 um 19:29:02 Uhr
Goto Top
Danke für die Antworten!

Ich wollte es elegant machen statt hart gecoded. Aber das geht natürlich auch..!