Изображения С# ListView не отображаются во время выполнения

Привет, я сделал простой ListView, который имеет 2 столбца, это Detail ListView, я создал ImageList и добавил свои изображения внутрь, я установил столбец ImageIndex (я также пробовал с ImageKey) для обоих моих столбцов и Изображения отображаются внутри дизайнера, но как только я запускаю программу, изображения не отображаются.

Вот скриншот дизайнера http://i.imgur.com/ZohRUon.png


person Rageline    schedule 24.11.2014    source источник
comment
Вы имеете в виду отображение значка?   -  person DidIReallyWriteThat    schedule 24.11.2014
comment
Изображение в названии столбца... i.imgur.com/ZohRUon.png   -  person Rageline    schedule 24.11.2014
comment
Где-то вызывается «Clear()»? Или изображения отсутствуют, но содержимое столбца все еще отображается?   -  person Sjips    schedule 25.11.2014
comment
Clear() не вызывается, да, изображения столбцов отсутствуют, но содержимое все еще рисуется.   -  person Rageline    schedule 25.11.2014


Ответы (2)


Это недостаток дизайнера, он неправильно сериализует свойство ColumnHeader.ImageIndex. Например, вы увидите, что изображение снова исчезло, когда вы закроете окно конструктора и снова откроете его.

Статья базы знаний, на которую ссылается @Idle, слишком громоздка, вам просто нужно сделать то же самое, что и в дизайнере. Снова установите ImageIndex. Сделайте это в конструкторе формы. Я не могу сказать, какой правильный код может быть на снимке экрана, но он должен напоминать:

    public Form1() {
        InitializeComponent();
        listView1.Columns[0].ImageIndex = 0;
        listView1.Columns[1].ImageIndex = 1;
    }
person Hans Passant    schedule 25.11.2014
comment
Гораздо проще Ганс, спасибо! Я просто принял статью MS за чистую монету и не пытался найти какие-либо другие решения. - person Idle_Mind; 26.11.2014
comment
Спасибо Ганс, я сам только что столкнулся с этой ошибкой. Удивительно, что ребята из MS до сих пор не исправили это в Visual Studio 2K15! - person J. Scott Elblein; 12.04.2016

Несмотря на отображение значков в заголовке столбца во время разработки, очевидно, что элемент управления ListView в .Net на самом деле не поддерживает эту функцию:

Такое поведение возникает из-за того, что реализация .NET класса System.Windows.Forms.ColumnHeader не включает возможность назначать изображение элементу управления ColumnHeader. Элементу управления ColumnHeader можно назначить только текст.

Код в PRB: невозможно назначить изображения элементу управления ColumnHeader в элементе управления Windows Forms ListView в Visual C# Однако .NET отлично работал у меня.

После добавления кода и запуска моего тестового приложения заголовки моих столбцов имели тот же значок во время выполнения, который был назначен им во время разработки.

person Idle_Mind    schedule 25.11.2014