ListView Image Fehler in der Darstellung

rabado

Mitglied
Hallo,

ich habe ein kleines Problem bei der Darstellung von Einträgen im Listview für ein WindowsCE - Gerät.
Der Fehler stellt sich allerdings auch auf einer "normalen" Windowsoberfläche dar.

In einem Listview zeige ich Werte mit einem Pictogramm an. Das selbe ListView verwende ich auch noch für eine andere Darstellung(Einzelübersicht).

Wechsel ich von der Darstellung mit Pictogramm auf eine Darstellung ohn Pictogramm, stellen sich die Einträge so dar, dass an der Stelle wo ein Pictogramm war, jetzt eine Lücke ist.

Ich habe SmallImageList und LargeImageList auf null gesetzt, View auf View.Details und ein Refresh durchgeführt.
Rufe ich die Liste in der Darstellung ohne Pictogramm auf, ist die Lücke nicht da, nach dem ersten Wechsel auf eine Image-Darstellung ist die Ansicht "kaputt"
Nichts hat geholfen.

http://www.rabado.de/images/ListViewImg.bmp
www.rabado.de/images/ListViewFehler.bmp
Kann mir einer bei dem Problem helfen?
 
Hier ist mein Beispielcode.
Code:
private void initListView()
        {
            listView1.Columns.Clear();
            listView1.Clear();
            listView1.SmallImageList = null;
            listView1.LargeImageList = null;
            listView1.Columns.Add("Ü1");
            listView1.Columns.Add("Ü2");
            listView1.Columns.Add("Ü3");
        }


        private void Einfügen(bool bPictogramm)
        {
            for (int i = 0; i < 6; i++)
            {
                ListViewItem lvi = new ListViewItem("Eintrag " + i.ToString());
                if (bPictogramm) lvi.ImageIndex = i;
                lvi.SubItems.Add("Sub " + i.ToString());
                lvi.SubItems.Add("Sub " + i.ToString());
                listView1.Items.Add(lvi);
            }
        }

        private void btnEnde_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void cbLVStyle_SelectedIndexChanged(object sender, EventArgs e)
        {
            listView1.View = (View)cbLVStyle.SelectedIndex;
            switch (cbLVStyle.SelectedIndex)
            {
                case 0:
                    initListView();
                    listView1.SmallImageList = SmallImage;
                    listView1.LargeImageList = SmallImage;
                    listView1.View = View.Details;
                    Einfügen(true);
                    break;
                case 1: 
                    initListView();
                    listView1.View = View.Details;
                    Einfügen(false);
                    break;
            }
        }

Liste mit Piktogrammen
Liste ohne Piktogramme
In der list ohne Piktogramme ist die Lücke zu sehen, die ich nicht haben möchte,
leider weiß ich nicht wie ich diese da weg bekomme.
 
Zuletzt bearbeitet:
Ich habe mir jetzt erst einmal damit geholfen,
dass ich
Code:
listView1.SmallImageList = null;
ersetzt habe durch
Code:
listView1.SmallImageList.ImageSize = new Size(1,1);
und anschließend, wenn ich die Symbole sehen möchte, ImageSize auf
Code:
listView1.SmallImageList.ImageSize = new Size(16,16);
setze.

Ich kann mir aber nicht vorstellen, dass dieses der Weisheit letzter Schluß ist, nur finde ich im Moment keine andere Lösung.
 
Zurück