Ereignisse für verschachtelte Klassen auslösen ...

12/04/2009 - 09:03 von Nicolas Nickisch | Report spam
Wow, ich habe alleine über dem Subject 10 Minuten gebrütet und es beschreibt
mein Problem wahrscheinlich noch immer unzureichend.

Vielleicht hat ja trotzdem jemand nach dem Ostereiersuchen eine Idee zu
meinem Problem:


Ich habe folgende Verschachtelung:

Public Class MainClass
...
class SubClass1
Event XXX_changed(par as single)


end class

sub Ereignis_auslösen
RaiseEvent XXX_changed(test)
end Class

Ihr seht, ich möchte innerhalb der Main-klasse ein Ereignis für die
subclass1 auslösen.

Allerdings taucht nach RaiseEvent nichts dergleichen in IntelliSense auf.
Stattdessen bekomme ich eine Meldung XXX_changed ist kein Ereignis von
MainClass.MainClass

Kann jemand helfen ?


Gruss Nico
 

Lesen sie die antworten

#1 Thorsten Doerfler
12/04/2009 - 10:43 | Warnen spam
Nicolas Nickisch schrieb:
Ich habe folgende Verschachtelung:

Public Class MainClass
...
class SubClass1
Event XXX_changed(par as single)


end class

sub Ereignis_auslösen
RaiseEvent XXX_changed(test)
end Class

Ihr seht, ich möchte innerhalb der Main-klasse ein Ereignis für die
subclass1 auslösen.

Allerdings taucht nach RaiseEvent nichts dergleichen in IntelliSense auf.
Stattdessen bekomme ich eine Meldung XXX_changed ist kein Ereignis von
MainClass.MainClass



Die Definition von Subclass innerhalb von MainClass ist nichts weiter
als ein Strukturierungselement. Beide Klassen wissen dennoch nichts
voneinander. Auch nichts von ihren Events. Selbst wenn Du eine Instanz
von MainClass hast, brauchst Du immer noch eine Instanz von SubClass.

Damit könntest Du aber immer noch keine Events auslösen. Dazu bràuchte
SubClass eine Methode, die dann wiederrum das RaiseEvent übernimmt. Das
funktioniert für die Konsumenten des Events aber auch nur, wenn man
einen Singleton hat. Sprich, die Ereignisempfànger müssen die selbe
Instanz verwenden, die auch MainClass hat.

Vielleicht kannst Du Deinen konkreten Anwendungsfall für Dein Problem
aufs Nötigste reduziert schildern. Mir möchte momentan keine sinnvolle
Verwendung dafür einfallen.

Im Falle des Changed macht man das normalerweise über Property Methoden,
die das Ereignis auslösen, sobald sich ein Eigenschaftswert geàndert
hat. So muss man dieses Ereignis nicht separat von außen triggern.

Thorsten Dörfler
Microsoft MVP Visual Basic

vb-hellfire visual basic faq | vb-hellfire - einfach anders
http://vb-faq.de/ | http://www.vb-hellfire.de/

Ähnliche fragen