von einer Klasse auf die ImageList in der Form zugreifen

26/11/2007 - 08:40 von Hartmut Callies | Report spam
Hallo,
ich habe ein Projekt erzeugt mit der Vorlage
Windows-Anwendung. In diesem existiert eine
Form TestForm mit einer ImageList.
Weiterhin habe ich eine eigene Klasse clsTest.
Von der Klasse clsTest kann ich auf die ImageList
zugreifen: clsTest.ImageList.

Jetzt habe ich ein Projekt mit der Vorlage
Klassenbibliothek erstellt. Auch darin befindet
sich TestForm mit ImageList und Klasse clsTest.
Nur hier kann ich nicht von der Klasse clsTest
auf die ImageList von der Form zugreifen.

Ich weiß dass im zweiten Projekt Verweise oder
Namespaces fehlen, welche bereits standardmàßig
geladen werden. Dies habe ich überprüft. Brachte
aber keinen Erfolg.
Wo liegt der Unterschied bei beiden Projekten für
den Zugriff auf die ImageList?

Hartmut Callies
 

Lesen sie die antworten

#1 Armin Zingler
26/11/2007 - 10:30 | Warnen spam
"Hartmut Callies" schrieb
Hallo,
ich habe ein Projekt erzeugt mit der Vorlage Windows-Anwendung. In
diesem existiert eine Form TestForm mit einer ImageList.
Weiterhin habe ich eine eigene Klasse clsTest. Von der Klasse
clsTest kann ich auf die ImageList zugreifen: clsTest.ImageList.

Jetzt habe ich ein Projekt mit der Vorlage Klassenbibliothek
erstellt. Auch darin befindet sich TestForm mit ImageList und Klasse
clsTest. Nur hier kann ich nicht von der Klasse clsTest auf die
ImageList von der Form zugreifen.

Ich weiß dass im zweiten Projekt Verweise oder Namespaces fehlen,
welche bereits standardmàßig geladen werden. Dies habe ich
überprüft. Brachte aber keinen Erfolg.
Wo liegt der Unterschied bei beiden Projekten für den Zugriff auf
die ImageList?




Du verwendest VB > 2003? Dann bedanke dich erst mal beim Hersteller für
diese überflüssige Verwirrung und darüber, dass VB wieder durch diverse
"under the hood" Geschichten zu einer, vermeintlich auf Anfànger
zugeschnittenen, Sprache gemacht wird. Deine Frage zeigt, dass das ein
Schritt in die falsche Richtung ist.

Also: Lies den Unterschied zwischen den Begriffen "Klasse" und "Objekt"
nach. Dann frage dich, wo im einen Projekt die Variable deklariert, die auf
die Form verweist. Frage dich dann, wo das im anderen Projekt der Fall ist.
Ich habe in beiden Fàllen keine solche Variable gefunden, wundere mich
deshalb auch - und könnte kotzen.

VB deklariert anscheinend in Winforms-Projekten unsichtbar Variablen für
jede Form. Du benutzt diese Variable, ohne sie zu sehen und ohne dorthin
springen zu können. Verwende "gehe zu definition" bei "Form1.show" und du
wirst zu "Class Form1" gebracht, obwohl das falsch ist, denn Show ist keine
Shared Methode, sondern ein Instanzmember.

In einem Klassenprojekt gibt es keine solche Geistervariablen, die niemand
zu Gesicht bekommt.

Lösung: Deklariere für Formen genauso Variablen wie für alle anderen Klassen
auch und instanziiere sie genauso wie du es mit tausenden von anderen
Klassen und Objekten auch machst.


Armin

Ähnliche fragen