在SplitContainer中的ListView中使用不同的前色ListViewItem时,我注意到了一些不寻常的行为。最初通常不会显示颜色(虽然有时它们是神秘的),但它们会在选择项目时显示。调整窗口大小似乎也消除了ListViewItems中的任何颜色(如果锚点设置为与面板一起调整大小),将所有项目重置为原始黑色ForeColor。在添加ListViewItems之后调用invalidate或刷新没有任何区别,它们最初在被点击之前仍被绘制为黑色。请注意,当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上都会出现颜色问题。