这是业主绘制的一个非常基本的版本ListView
。设置OwnerDraw
属性为 true 并编码DrawItem
事件,也许是这样的:
private void listView1_DrawItem(object sender, DrawListViewItemEventArgs e)
{
e.DrawBackground();
e.DrawText();
if (e.Item.Selected)
{
Rectangle R = e.Bounds;
R.Inflate(-1, -1);
using (Pen pen = new Pen(Color.Red, 1.5f))
e.Graphics.DrawRectangle(pen, R);
}
}
我把矩形做得小一点,以便它可以工作Details View
,但你应该尝试一下,让它适合你的需求和幻想......!
注意:如果您有 ColumnHeaders,您还需要编写代码DrawColumnHeader
事件,最简单的形式如下:
private void listView1_DrawColumnHeader(object sender,
DrawListViewColumnHeaderEventArgs e)
{
e.DrawDefault = true;
}
如果你有子项目,你需要有一个DrawSubItem
事件,至少是这样的:
private void listView1_DrawSubItem(object sender, DrawListViewSubItemEventArgs e)
{
e.DrawDefault = true;
}
显然,如果您也希望在此处绘制矩形,则需要为此事件编写更多代码。但默认的功能是DrawBackground
and DrawText
也可以在这里找到。