User-Control-Properties mit C# und VS2003

Hallo Alle.

Ich habe ein Problem mit einer User-Control, also einem selbst erstelltem grafischen Control-Element. Die Control hat eine PictureBox namens „Bitmap“, deren Image geändert werden soll. Die Control funktioniert problemlos, allerdings wollte ich jetzt einige Einstellmöglichkeiten hinzufügen, die man über den Formdesigner verändern kann. Dazu habe ich folgenden Code zur Control hinzugefügt :

private System.Windows.Forms.ImageList internalIL;

public System.Windows.Forms.ImageList ImageList 
{
 get 
 {
 return(internalIL);
 }
 set
 {
 internalIL = ImageList;
 if (internalIL != null) 
 {
 Bitmap.Image = internalIL.Images[];
 }
 Refresh();
 }
}

Wenn ich jetzt eine Komponente im Formdesigner auf die Form ziehe und die Properties angucke, sehe ich auch unter anderem die Property „ImageList“, und kann aus der Drop-Down-Box eine ImageList auswählen. Die Änderung wird aber nicht übernommen, und der Eintrag springt wieder zurück auf „none“.
Wenn ich im Initialisierungscode folgendes einfüge :

pictureButton1.ImageList = ;

passiert auch absolut nix…

Hat vielleicht jemand eine Lösung? Was mache ich falsch?

Kim

Hi

Zwar etwas spät, aber hoffentlich ist es trotzdem noch von Interesse:

Das Problem liegt vermutlich darin, dass dem Designer dein Code nicht ganz ausreicht. Versuch doch mal folgendes:
Öffne den Designer und platziere dort eine ImageList auf dem UserControl (imageList1). Dann generiert der Designer den nötigen Code, damit die ImageList persistent bleibt. Erst anschliessend wechselst du in den Code Editor und schreibst die öffentliche Property, damit die ImageList auch von aussen zugreifbar ist:

public System.Windows.Forms.ImageList ImageList
{
 get { return imageList1; }
 set { imageList1 = value; /\* ... \*/ }
}

Freundliche Grüsse