1

我想为 ListView 中的一两个项目实现所有者绘制。

我找到了这处DrawListViewItemEventArgs.DrawDefault房产,但不清楚它的用途。这个属性的MSDN 示例只是打印它的值,这对于理解它的使用方式完全没有用。

我是否需要在每次调用时设置此属性DrawItem(),或者有没有办法为那些我不想拥有的项目设置此属性?

4

2 回答 2

1

如果我的记忆正确,您需要执行以下操作:

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
}
于 2012-07-30T18:04:21.093 回答
1

仅当您希望正常的列表视图项目绘制发生时,才应将其设置为 true。在您的 DrawItem 事件处理程序返回后发生。并且会过度绘制您绘制的任何内容。

这不是典型的,您通常实现事件以以不同的方式绘制项目。这使得默认值 false 成为正常用法,事件处理程序完成后不会发生进一步的绘制。

于 2012-07-30T18:05:39.970 回答