我想为 ListView 中的一两个项目实现所有者绘制。
我找到了这处DrawListViewItemEventArgs.DrawDefault
房产,但不清楚它的用途。这个属性的MSDN 示例只是打印它的值,这对于理解它的使用方式完全没有用。
我是否需要在每次调用时设置此属性DrawItem()
,或者有没有办法为那些我不想拥有的项目设置此属性?
如果我的记忆正确,您需要执行以下操作:
private void ListView1_DrawItem(Object sender, DrawListViewItemEventArgs e) {
if (mycustomdraw) // Do we need to draw it or use the default drawing
{
e.DrawDefault = false; // This may be set to false by default
// Draw the list item here
}
else
e.DrawDefault = true; // Tell the listview to use the default drawing
}
仅当您希望正常的列表视图项目绘制发生时,才应将其设置为 true。在您的 DrawItem 事件处理程序返回后发生。并且会过度绘制您绘制的任何内容。
这不是典型的,您通常实现事件以以不同的方式绘制项目。这使得默认值 false 成为正常用法,事件处理程序完成后不会发生进一步的绘制。