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

badside Messages postés 81 Statut Membre -  
badside Messages postés 81 Statut Membre -
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

  1. badside Messages postés 81 Statut Membre 4
     
    Up
    0
  2. badside Messages postés 81 Statut Membre 4
     
    Personne ?
    0
  3. badside Messages postés 81 Statut Membre 4
     
    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