ListView C#(.Net 3.5)中的替代颜色?

Posted

技术标签:

【中文标题】ListView C#(.Net 3.5)中的替代颜色?【英文标题】:Alternate Color in ListView C# (.Net 3.5)? 【发布时间】:2011-04-29 16:42:50 【问题描述】:

我将为我的 ListView 行设置另一种颜色。 我看到了this link,但我使用的是 .Net Framework 3.5 SP1,所以我不能使用它。 我使用了以下代码,但 ListView 排序有问题

ListViewItem newListViewItem = new ListViewItem(
    new string[]  item.name.ToString(), 
                   item.code.ToString() );
newListViewItem.BackColor = new Color(240,240,240);
newListViewItem.UseItemStyleForSubItems = true;
newListViewItem.Font = new Font("Tahoma", 9);
listView1.Items.Add(newListViewItem);

你能指导我怎么做吗?

【问题讨论】:

【参考方案1】:

这是一个简单的方法 -> Alternate background

【讨论】:

该链接是 WPF 的,我想在 WinForms 中。【参考方案2】:

从你的 sn-p 中很不清楚,但我猜你想要交替颜色。偶数项目以一种方式着色,奇数项目以另一种方式着色。是的,当视图中有大量列时,作为阅读指南非常有效。

是的,当您对项目进行分类时,这会被搞砸。排序后,您需要一个简单的 for 循环来更改 BackColor 属性。

    private static void recolorListItems(ListView lv) 
        for (int ix = 0; ix < lv.Items.Count; ++ix) 
            var item = lv.Items[ix];
            item.BackColor = (ix % 2 == 0) ? Color.Beige : Color.White;
        
    

排序后调用它。或者在填充 ListView 之后。我不喜欢颜色,请选择你自己的。

【讨论】:

以上是关于ListView C#(.Net 3.5)中的替代颜色?的主要内容,如果未能解决你的问题,请参考以下文章

asp.net(C#)怎样将listview中的radiobutton设置成互斥?

.NET 3.5 中 ExpandoObject 的替代品,开销最小

.NET 3.5 以外的任何东西都不能在 c# 项目中命中断点

C# 3 个新功能帖子(而不是关于 .Net 3.5 功能)[关闭]

c# .NEt 3.5 以用户形式运行进程时无法隐藏 CMD 窗口 - 窗体应用程序

将 C# .net 4 代码编译为 .net 3.5?