ForeColor сбрасывается в SplitContainer при инициализации и изменении размера

Я заметил несколько необычное поведение при использовании различных предварительно окрашенных ListViewItems в ListView внутри SplitContainer. Первоначально цвета обычно не отображаются (хотя иногда они выглядят загадочно), но они отображаются при выборе элементов. Изменение размера окна также, по-видимому, стирает любые цвета в ListViewItems (если якоря установлены для изменения его размера вместе с панелью), сбрасывая все элементы в исходный черный ForeColor. Вызов "аннулировать" или "обновить" после добавления ListViewItems не имеет значения, они по-прежнему первоначально отображаются черным до нажатия. Обратите внимание, что эта проблема не возникает, когда ListView находится за пределами SplitContainer.

Для воспроизведения создайте новый проект форм Windows, добавьте SplitContainer и добавьте ListView к одной из его сторон. Установите для свойства ViewView ListView значение List и закрепите его со всех сторон для изменения размера. Затем используйте следующий код после InitializeComponent для настройки элементов:

ListViewItem listViewItem = new ListViewItem("blah blah blah blah blah 1");
listViewItem.UseItemStyleForSubItems = false;
listViewItem.ForeColor = Color.Red;
listView1.Items.Add(listViewItem);

listViewItem = new ListViewItem("blah blah blah blah blah 2");
listViewItem.UseItemStyleForSubItems = false;
listViewItem.ForeColor = Color.Blue;
listView1.Items.Add(listViewItem);

listViewItem = new ListViewItem("blah blah blah blah blah 3");
listViewItem.UseItemStyleForSubItems = false;
listViewItem.ForeColor = Color.Green;
listView1.Items.Add(listViewItem);

Есть идеи, как это исправить? Я нашел несколько похожих вопросов, но не нашел реального решения проблемы. Спасибо за помощь.

Я использую Visual C# 2010 Express с.Net Framework 4. Проблемы с цветом возникают как в Windows XP, так и в 7.

0 ответов

Другие вопросы по тегам