在初始化和调整大小时,在SplitContainer中重置ForeColor

时间:2013-06-05 19:01:47

标签: c# winforms listview splitcontainer

在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上都会出现颜色问题。

0 个答案:

没有答案