在 SplitContainer 内的 ListView 中使用不同的前色 ListViewItems 时,我注意到一些不寻常的行为。最初通常不显示颜色(尽管有时它们会神秘地显示),但它们会在选择项目时出现。调整窗口大小似乎也消除了 ListViewItems 中的所有颜色(如果锚点设置为与面板一起调整它的大小),将所有项目重置为原始黑色 ForeColor。添加 ListViewItems 后调用 invalidate 或 refresh 没有区别,它们最初仍被绘制为黑色,直到被点击。请注意,当 ListView 位于 SplitContainer 之外时,不会出现此问题。
要重现,创建一个新的 windows 窗体项目,添加一个 SplitContainer,并在其一侧添加一个 ListView。将 ListView 的 View 属性设置为 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);
知道如何解决这个问题吗?我发现了一些类似的问题,但没有真正解决这个问题。谢谢您的帮助。
我正在使用带有 .Net Framework 4 的 Visual C# 2010 Express。颜色问题发生在 Windows XP 和 7 上。