Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#列标题';s自由空间背景色_C#_.net_Winforms_Listview_Ownerdrawn - Fatal编程技术网

C#列标题';s自由空间背景色

C#列标题';s自由空间背景色,c#,.net,winforms,listview,ownerdrawn,C#,.net,Winforms,Listview,Ownerdrawn,我正在尝试在FastObjectListView控件中绘制自定义列标题 到目前为止,代码仍然有效,但ColumnHeaders可用空间(因此不包含任何列标题的部分)仍然作为默认值绘制 private void olvMain_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e) { e.Graphics.FillRectangle(Brushes.Black,

我正在尝试在FastObjectListView控件中绘制自定义列标题

到目前为止,代码仍然有效,但ColumnHeaders可用空间(因此不包含任何列标题的部分)仍然作为默认值绘制

    private void olvMain_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
    {
        e.Graphics.FillRectangle(Brushes.Black,
            e.Bounds.X, e.Bounds.Y,
            e.Bounds.Width, e.Bounds.Height);

        e.Graphics.DrawRectangle(Pens.Lime,
            e.Bounds.X - 1, e.Bounds.Y - 1,
            e.Bounds.Width - 1, e.Bounds.Height - 1);

        e.DrawText();

        e.DrawDefault = false;
    }
我补充说:

e.DrawDefault = false;
因为如果没有它,columnheaders默认样式将在我的自定义样式之上绘制, 但由于columnheaderbar的可用空间不包含任何columnheaderbar,因此它仍然使用默认样式绘制

这里有一张图片来说明我所说的Columnheader的自由空间是什么意思:


提前感谢。

未绘制黑色的区域位于Header客户端区域之外,因此控件无法绘制

没有简单的方法可以改变那个区域的颜色。看一看,看看一些可能的解决方案