Event in einer anderen Klasse aufrufen
-
Hallo Leute,
ist es möglich, ein Event aus einer anderen Klasse aufzurufen, also so in der Art:public Class A { public event EventHandler evt; } public Class B { private A a; public B() { B.evt(); } }
Dieser Code funktioniert so nicht. Mir würde es auch reichen, ein Event aus einer Subklasse aufzurufen, d.h. im obigen Beispiel wäre B eine Subklasse von A (Und es würde keine Instanz a geben, das Event würde also direkt aufgerufen werden).
Danke im voraus.
-
events weren nicht mit vererbt, dazu brauchst du eine funktion in der basisklasse die mit dem event etwas anfängt, welche du in der abgeleiteten klasse aufrufst
[Edit]
vielleicht meinst du sowas?namespace ConsoleApplication1 { public delegate void Eventh(); class Baseclass { public event Eventh evt; public void OnEvent() { evt(); } } class Subclass { public Baseclass b = new Baseclass(); public void DoSomething() { b.evt += Test; b.OnEvent(); } public void Test() { Console.WriteLine("TEST"); } } }
Anwendung
class Program { static void Main(string[] args) { Subclass s = new Subclass(); s.DoSomething(); Console.ReadLine(); } }
-
Daran hab ich auch schon gedacht, das Problem ist nur, dass ich auf die Basisklasse keinen Zugriff habe (PropertyGrid). Konnte das Problem allerdings inzwischen anders lösen, trotzdem danke.