【问题标题】:Can't Get ListViewItem to Display in Color无法让 ListViewItem 以彩色显示
【发布时间】:2016-08-01 11:22:33
【问题描述】:

所以我在 Windows 窗体应用程序中使用 C#,我的问题是关于 ListView。我想要做的就是根据值以某种颜色显示 ListViewItem。现在我尝试了传统的方法:

ListViewItem li = new ListViewItem();
li.ForeColor = Color.Green;
li.Text = "Limit: " + wc.getCreditLimit();
listLimits.Items.Add(li);

但我在 ListView 中看到的结果是:

ListViewItem:{Limit:15000}

不,它不是彩色的

我尝试的另一种方法是使用文本作为参数初始化 ListViewItem,如下所示:

ListViewItem li = new ListViewItem("Limit: " +   wc.getCreditLimit());
li.ForeColor = Color.Green;
listLimits.Items.Add(li);

但这也会产生与以前相同的结果。

我尝试的另一种方法是添加 ListViewItem 的 Text 属性,如下所示:

ListViewItem li = new ListViewItem("Limit: " + wc.getCreditLimit());
li.ForeColor = Color.Green;
listLimits.Items.Add(li.Text);

现在这会在 ListView 中显示正确的文本,但是它仍然没有着色!

有人可以解释一下这种奇怪的行为吗,因为根据我的阅读,这似乎是向 ListViewItem 添加颜色的唯一方法。任何建议将不胜感激,谢谢。

【问题讨论】:

  • 为反对票喝彩……现在,如果有人可以尝试帮助而不是批评,那就太好了!
  • 根据this 你做对了。我怀疑是一个常见的用户错误,可能ListView 不在Details 模式或其他模式下。至于 “看起来这是向 ListViewItem 添加颜色的唯一方法” 你不正确,还有其他 方法:1)WPF 2)owner drawnListView 3) 第三方组件。

标签: c# winforms colors listviewitem


【解决方案1】:

您的代码(第一段)运行良好。

如果您看到ListViewItem:{Limit:15000},则说明您在其他地方遇到了问题。

看起来好像你添加了错误的对象类型,但很明显它是ListViewItem 你没有..

所以我猜你将它添加到 ListBox 而不是 ListView.. 当我这样做时,我会得到你所看到的:

【讨论】:

  • 感谢您的洞察
【解决方案2】:

试试这个:

listLimits.Items.Add(li);

您添加的只是文本而不是ListViewItem

listLimits.Items.Add(**li.Text**);

【讨论】:

  • 你读过我的前两段代码吗?我尝试了两种不同的方式
猜你喜欢
  • 1970-01-01
  • 2012-05-29
  • 1970-01-01
  • 2017-07-23
  • 1970-01-01
  • 2019-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多