c# - Winforms - 如何改变 ListView 控件中行的颜色?

标签 c# winforms .net-3.5 listview

使用 C# Winforms (3.5)。

是否可以将行颜色设置为在 ListView 中自动交替?

或者我是否需要在每次向 ListView 添加新行时手动设置行颜色?

基于 MSDN article 手动方法如下所示:

//alternate row color
if (i % 2 == 0)
{
    lvi.BackColor = Color.LightBlue;
}
else
{
    lvi.BackColor = Color.Beige;
}

最佳答案

将 ListView OwnerDraw 属性设置为 true,然后实现 DrawItem 处理程序:

    private void listView_DrawItem(object sender, DrawListViewItemEventArgs e)
    {
        e.DrawDefault = true;
        if ((e.ItemIndex%2) == 1)
        {
            e.Item.BackColor = Color.FromArgb(230, 230, 255);
            e.Item.UseItemStyleForSubItems = true;
        }
    }

    private void listView_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
    {
        e.DrawDefault = true;
    }

这个例子很简单,你可以改进它。

关于c# - Winforms - 如何改变 ListView 控件中行的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2866730/

相关文章:

c# - StoreGeneratedPattern 不适用于 DevArt Entity Framework ?

c# - 我需要帮助以编程方式更改 WinForms 中的组合框

c# - Windows Forms .NET 中的 DataGridViewRow 线程安全

c# - 重用 try catch 进行 wcf 调用

c# - .net,业务逻辑和 DAL 之间的 C# 接口(interface)

c# - 更改布局大小取决于屏幕大小

c# - 如何在 Visual Studio 2008 中调试 *Invoke()

c# - 监听串口。如何将字符串添加到列表框?

c# - 如何减轻在 C# 中初始化列表字典的痛苦?

c# - 扩展器的奇怪行为