DrawItem事件中listView项的状态是错误的

Zen*_*nya 5 .net c# winforms

问题出在代码中.无法理解为什么会这样.

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))
    {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

有人有类似的问题吗?

Jar*_*red 6

这看起来像是一个已知的bug,自2006年左右开始,有证据表明该ListView.HideSelection属性设置为FALSE.

文件中唯一的解决方法是执行您已经完成的操作:使用e.Item.Selected.

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