C#列标题';s自由空间背景色
我正在尝试在FastObjectListView控件中绘制自定义列标题 到目前为止,代码仍然有效,但ColumnHeaders可用空间(因此不包含任何列标题的部分)仍然作为默认值绘制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,
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客户端区域之外,因此控件无法绘制 没有简单的方法可以改变那个区域的颜色。看一看,看看一些可能的解决方案