Entwickler-Ecke

WinForms - Listview mit Bildern


vreden123 - Do 14.04.11 18:24
Titel: Listview mit Bildern
Hallo,

Wie kann ich am besten Bilder ein meiner Listview hinzufügen?
Ich habe schon gelesen das ich das mit einer Imagelist machen muss, aber ich verstehe nicht wie ich das am besten mache.

Text füge ich wie folgt hinzu:

C#-Quelltext
1:
2:
3:
4:
string[] newHobby = new string[]
        { "hobby.Name""hobby.ClubName""hobby.MonthlyCost.ToString(\"C\")" };

      ListViewItem item = new ListViewItem(newHobby);


jaenicke - Do 14.04.11 18:32

Du packst eine ImageList auf dein Formular, fügst die Bilder hinzu und setzt die Eigenschaft LargeImageList / SmallImageList der ListView entsprechend.

Dann kannst du bei den einzelnen Items einfach ImageIndex entsprechend des Indexes in der ImageList setzen, fertig.


vreden123 - Do 14.04.11 20:29

und wie genau?

weil ich kann ja nur texte hinzufügen und keine bilder.
Oder wo liegt da der Denkfehler?


vreden123 - Do 14.04.11 21:28

Ich möchte das Bild auch nicht ganz links einfügen sondern in einer spalte.


jaenicke - Fr 15.04.11 04:56

user profile iconvreden123 hat folgendes geschrieben Zum zitierten Posting springen:
Ich möchte das Bild auch nicht ganz links einfügen sondern in einer spalte.
Das war die wichtige Information...

Das ist so nicht vorgesehen, ich denke da musst du das selbst zeichnen. Dafür gibt es DrawSubItem als Ereignis. Darin kannst du dann den Inhalt (in deinem Fall das Bild plus der Text) der Zelle selbst zeichnen.


vreden123 - Fr 15.04.11 11:08

Und wie verwende ich dieses "DrawSubItem"? Wie Zeichne ich den das Bild/Icon?


m-s - Fr 15.04.11 11:19

user profile iconvreden123 hat folgendes geschrieben Zum zitierten Posting springen:
Und wie verwende ich dieses "DrawSubItem"? Wie Zeichne ich den das Bild/Icon?

Schreib in Deinen Code


C#-Quelltext
1:
2:
ListView list = new ListView();
list.DrawSubItem

und drücke sofort F1


jaenicke - Fr 15.04.11 11:24

Vollkommen überraschend steht das in der Dokumentation beschrieben, sogar mit Beispiel:
http://msdn.microsoft.com/de-de/library/system.windows.forms.listview.drawsubitem.aspx


vreden123 - Fr 15.04.11 11:43

Ja auf der Microsoft seite war ich bereits.

Aber wenn ich das in mein Projekt hinzufüge, dann wird in dem Beispiel 2 Fehler angezeigt. Undzwar das:

NumberFormatInfo
NumberStyles.Currency

nicht in dem Projekt enthalten sind.
Deswegen stelle ich ja meine Frage, weil ich nicht weiß woran das liegt.


Th69 - Fr 15.04.11 11:57

Dann such nach diesen Stichworten und binde die dafür nötigen Namensbereiche (namespace) ein.


jaenicke - Fr 15.04.11 13:13

user profile iconvreden123 hat folgendes geschrieben Zum zitierten Posting springen:
Aber wenn ich das in mein Projekt hinzufüge, dann wird in dem Beispiel 2 Fehler angezeigt.
Und du meintest es wäre sinnvoller das einfach einmal nicht zu erwähnen? Meine Glaskugel ist leider gerade in Reparatur... :roll:

Visual Studio bietet dir doch direkt eine Autokorrektur an:

CsAutoCorrection

Dort kannst du einfach eine von beiden Möglichkeiten anklicken und fertig.