[VB.NET] Collection d'images comme propriété

Fermé
badside Messages postés 78 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 16 mars 2012 - Modifié par badside le 13/10/2011 à 23:13
badside Messages postés 78 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 16 mars 2012 - 12 janv. 2012 à 22:05
Bonjour,

J'ai créé un "UserControl" avec une propriété "ImageList".

J'aimerais pouvoir alimenter manuellement cette propriété comme une collection d'images via la fenêtre des propriétés du UserControl en mode conception.

En faisant :
Public Property _imageList As System.Windows.Forms.ImageList
cette propriété propose une combobox dans la fenêtre des propriétés et il n'est pas possible de l'alimenter.

En faisant :
Public Property _imageList As System.Windows.Forms.ImageList.ImageCollection
j'obtiens un bouton à la place d'une combobox me permettant d'ouvrir un éditeur de collection d'images. Malheureusement, après avoir sélectionné les images et validé, ma collection (ou ma propriété) reste vide ...

Comment puis-je créer une collection d'images éditable comme propriété de mon UserControl ?
Ou dit autrement, comment reproduire le même comportement que la propriété Images d'un contrôle ImageList ?

Merci,
Badside.

3 réponses

badside Messages postés 78 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 16 mars 2012 4
14 oct. 2011 à 08:17
Up
0
badside Messages postés 78 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 16 mars 2012 4
20 oct. 2011 à 23:08
Personne ?
0
badside Messages postés 78 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 16 mars 2012 4
12 janv. 2012 à 22:05
Dans la partie code de mon UserControl, j'ai défini la propriété suivante :

Public Property _images() As Collections.Generic.List(Of System.Drawing.Image)
        Get
            Dim tmp As New Collections.Generic.List(Of System.Drawing.Image)
            For Each image As System.Drawing.Image In Me.ImageList1.Images
                tmp.Add(image)
            Next
            Return tmp
        End Get
        Set(value As Collections.Generic.List(Of System.Drawing.Image))
            For Each image As System.Drawing.Image In value
                Me.ImageList1.Images.Add(image)
            Next
        End Set
End Property


Je veux donc alimenter l'ImageList de mon UserControl via sa propriété publique _images.

Lorsque je suis en mode 'design' et que je désire alimenter ma propriété collection '_images' par l'intermédiaire de l'écran 'Image Collection Editor', j'obtiens le message d'erreur "Cannot create an instance of System.Drawing.Image because it is an abstract class.".

Pourquoi ?
Comment fait-on alors ?
0