Hallo pl,
TL;DR: Entkerne den Event-Handler und benutze den Kern an passender Stelle.
Langfassung: Du hast offensichtlich das Problem A, einen Algorithmus X sowohl auf Grund eines Events als auch "manuell" durchzuführen.
Als Lösung willst Du den Handler E des Events direkt aufrufen und ihm vorgaukeln, dass er ein Event bearbeiten würde. Das ist Problem B, und für das bittest Du um Hilfe.
A-B Probleme behandelt man am besten, indem man B ignoriert und eine bessere Lösung für A sucht.
Der Kern von Problem A ist: SRP (Single Responsibility Principle) wird nicht beachtet. Deine Eventhandler-Funktion E tut nämlich zwei Dinge: Auf das Event reagieren und Algorithmus X ausführen. Diese beiden Dinge schienen beim Schreiben des Handlers identisch zu sein, aber nun stellt sich heraus: sie sind es nicht.
Die Lösung für Problem A besteht demnach darin, sich an SRP zu halten: Nimm X aus der Eventhandler-Funktion E heraus und mach eine eigene draus. E kümmert sich nur noch darum, die Daten aus dem Event-Objekt für X aufzubereiten und dann X aufzurufen. Eventuell muss E auch noch andere Dinge tun, die ausschließlich im Event-Kontext von Bedeutung sind (Steuern des Bubbling etc).
An der Stelle, wo Du X brauchst, rufst Du X einfach passend auf.
Rolf
sumpsi - posui - clusi