ImageListBox

    • Beta
    • Open Source

      ImageListBox

      Name:
      ImageListBox

      Beschreibung:
      Es handelt sich hierbei um eine ListBox mit überarbeiteten ListBoxItems (ImageListBoxItem). Und der möglichkeit ein Dictionary als Datenquelle für Komplexe Datenbindung zu wählen. Für die Datenbindung eines Dictionarys wurde ein eigener MemberFieldEditor eingeführt.

      *Update*
      • Die Einstellungen für die DataListBoxItems wurden in einer eigenen Eigenschaften -Kategorie zusammen gefasst.
      • Es ist nun möglich die maximale Anzahl an Zeilen, die der Content -Text bei einem Zeilenumbruch verwenden darf, im Designer festzulegen

      *Update*
      • Es wurde ein eigener MemberFieldEditor eingeführt. Dieser wird für dei Eigenschaften ImageMember, HeaderMember und ContentMember verwendet.
      • Die Eigenschaften vom Typ Integer lassen sich nun mittels einem NummericUpDown Steuerelement einstellen.

      *Update*
      • Es wurde ein Bug behoben, bei dem ListboxItems die manuel hinzugefügt worden sind, nicht gezeichnet wurden.
      • Für die Datenbindung eines Dictionarys wird nun ein MemberInfo -Objekt verwendet.
      • Projekt wurde umbennant.



      Screenshot(s):


      Verwendete Programmiersprache(n) und IDE(s):
      c#, Visual Studio 2017

      Systemanforderungen:
      .Net 3.5

      Systemveränderungen:
      Keine

      Download(s):
      Siehe Anhang

      Lizenz/Weitergabe:
      OpenSource



      Anwendungs -Beispiel:
      Die Variable dlb entspricht einer DataListBox
      c#

      C#-Quellcode

      1. private void Form1_Shown(object sender, EventArgs e)
      2. {
      3. // DataListBoxItems erstellen
      4. //***************************
      5. Size previewImageSize = new Size(40, 40); // Die Größe für die Bilder der ListBoxItems
      6. KnownColor[] colors = (KnownColor[])Enum.GetValues(typeof(KnownColor));
      7. DataListBoxItem[] myItemsWithImage = new DataListBoxItem[colors.Length]; // ListBoxItems mit Bilder
      8. DataListBoxItem[] myItems = new DataListBoxItem[colors.Length]; // ListBoxItems ohne Bilder
      9. for (int i = 0; i < colors.Length; i++) {
      10. myItemsWithImage[i] = new DataListBoxItem(CreatePreviewImage(previewImageSize, Color.FromKnownColor(colors[i])), colors[i].ToString(), "Ich bin eine kurze Beschreibung zu diesem Bild...");
      11. myItems[i] = new DataListBoxItem(null, colors[i].ToString(), "Ich bin eine kurze Beschreibung zu diesem Bild...");
      12. }
      13. // Daten an ListBox binden
      14. //************************
      15. dlb.ImageMember = "Image";
      16. dlb.HeaderMember = "HeaderText";
      17. dlb.ContentMember = "ContentText";
      18. dlb.DataSource = myItemsWithImage;
      19. //dlb.DataSource = myItems;
      20. }



      vb

      VB.NET-Quellcode

      1. Private Sub Form1_Shown(sender As Object, e As EventArgs)
      2. ' DataListBoxItems erstellen
      3. '***************************
      4. Dim previewImageSize As New Size(40, 40)
      5. ' Die Größe für die Bilder der ListBoxItems
      6. Dim colors As KnownColor() = DirectCast([Enum].GetValues(GetType(KnownColor)), KnownColor())
      7. Dim myItemsWithImage As DataListBoxItem() = New DataListBoxItem(colors.Length - 1) {}
      8. ' ListBoxItems mit Bilder
      9. Dim myItems As DataListBoxItem() = New DataListBoxItem(colors.Length - 1) {}
      10. ' ListBoxItems ohne Bilder
      11. For i As Integer = 0 To colors.Length - 1
      12. myItemsWithImage(i) = New DataListBoxItem(CreatePreviewImage(previewImageSize, Color.FromKnownColor(colors(i))), colors(i).ToString(), "Ich bin eine kurze Beschreibung zu diesem Bild...")
      13. myItems(i) = New DataListBoxItem(Nothing, colors(i).ToString(), "Ich bin eine kurze Beschreibung zu diesem Bild...")
      14. Next
      15. ' Daten an ListBox binden
      16. '************************
      17. dlb.ImageMember = "Image"
      18. dlb.HeaderMember = "HeaderText"
      19. dlb.ContentMember = "ContentText"
      20. dlb.DataSource = myItemsWithImage
      21. 'dlb.DataSource = myItems;
      22. End Sub


      Dateien

      Dieser Beitrag wurde bereits 14 mal editiert, zuletzt von „Fakiz“ ()