Winforms - 如何在ListView控件中交替行的颜色?

Joh*_*n M 6 c# listview .net-3.5 winforms

使用C#Winforms(3.5).

是否可以将行颜色设置为在列表视图中自动交替?

或者每次将新行添加到列表视图时是否需要手动设置行颜色?

根据MSDN文章,手动方法如下所示:

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

Pie*_*non 6

将 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;
    }
Run Code Online (Sandbox Code Playgroud)

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


And*_*dre 5

我担心这是Winforms的唯一方法.XAML允许通过使用样式.