2010-03-05 48 views
3

问题出在代码中。无法理解为什么会发生这种情况。DrawItem事件中的listView项的状态是错误的

private void listView_DrawItem(object sender, DrawListViewItemEventArgs e) 
{ 
    // This works Ok 
    if (e.Item.Selected) 
    { 
     // ... 
    } 

    // This works wrong! 
    // e.State is always Selected! Why? 
    if ((e.State & ListViewItemStates.Selected) != 0)) 
    { 
     // ... 
    } 
} 

有人有类似的问题吗?

回答

3

从2006年开始,这看起来像是一个已知的bug,证明ListView.HideSelection属性设置为FALSE

文件上唯一的解决方法是做你已经做的事情:使用e.Item.Selected

Here是一个错误报告的链接 - 看起来它已被降级到目前为止的低优先级。

+0

谢谢。其实经过一些调试和玩ListView属性我自己找到了。只是不确定它是一个错误还是一个功能。现在很明显。 – Zenya 2010-03-07 14:31:11