LargeIcon视图中的Winform ListView背景颜色

时间:2014-09-19 12:50:11

标签: .net winforms listview

我正在使用标准的.NET ListView,我想在View = LargeIcon设置中设置背景颜色。当我设置ListViewItem.BackgroundColor时,只设置文本背景。

ListView Background color

1 个答案:

答案 0 :(得分:1)

我知道这已经晚了几天,但如果你仍然在解决问题之后,我找到了一些可能有用的东西。我在查看this answer后找到了解决方案。

您需要派生自己的ListView控件版本并添加一些自定义绘图,但这不会产生太多额外代码:

public class MyListView : ListView
{
    public MyListView()
        : base()
    {
        OwnerDraw = true;
        DrawItem += MyListView_DrawItem;
    }

    private void MyListView_DrawItem(object sender, DrawListViewItemEventArgs e)
    {
        using (SolidBrush itemBrush = new SolidBrush(e.Item.BackColor))
        {
            e.Graphics.FillRectangle(itemBrush, e.Item.Bounds);
        }

        e.DrawDefault = true;
    }
}

我在新表单上使用了这个新控件,我使用设计器添加了2个项目,并将项目的背景颜色设置为“Gold”。结果如下:

Example of ListView item background that covers more than just the text.