我目前正在开发一些软件,而且客户对于特定的UI更改已经死定,这给我带来了一些麻烦:
我希望ListView中的项目没有任何缩进。为了说明我更改了ListView和项目的背景颜色。
现在,每个项目左边的小块也应该是白色的。有什么想法吗?
答案 0 :(得分:4)
您可以将ListView
的{{3}}属性设置为true
,然后使用DrawItem
,DrawColumnHeader
和DrawSubItem
自行绘制列表视图。
例如:
private void listView1_DrawItem(object sender, DrawListViewItemEventArgs e)
{
e.Graphics.DrawString(e.Item.Text, e.Item.Font, Brushes.Black,
new Rectangle(e.Bounds.Left-2, e.Bounds.Top, e.Bounds.Width, e.Bounds.Height));
}
private void listView1_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
{
e.DrawDefault = true;
}
private void listView1_DrawSubItem(object sender, DrawListViewSubItemEventArgs e)
{
if(e.ColumnIndex>0)
e.DrawDefault = true;
}
注意:强>
OwnerDraw
在所需位置绘制项目文本。 e.DrawDefault = true;
以执行默认渲染。ListView
控件并将DoubleBuffered
属性设置为true。ListView
控件Graphics.DrawString
属性的文档。