B. *_*non 5 c# listview highlighting selection winforms
由于我没有根据用户可能选择的内容处理ListView中的项目(处理总是使用列表中的所有内容),我想禁止选择可能使用户认为他将处理限制为那个项目(我已经有多选=假,所以这不是问题).
Adr*_*tti 10
没有任何属性可以禁用项目选择ListView.
您可以做的是通过附加事件处理程序来处理通知已选择项目的事件ItemSelectionChanged,然后取消选择该项目:
yourListView.ItemSelectionChanged += yourListView_ItemSelectionChanged;
private void yourListView_ItemSelectionChanged(
object sender,
ListViewItemSelectionChangedEventArgs e)
{
if (e.IsSelected)
e.Item.Selected = false;
}
Run Code Online (Sandbox Code Playgroud)
为了增加Adriano Repettis的透明度,我在要遮挡的项目上添加了类似的颜色,他的解决方案可以防止蓝色突出显示,但是该项目仍然具有焦点,当该项目的背景色设置为除白色以外的任何其他颜色时,都会出现问题所选行的变为白色。为了解决这个问题,我建议添加以下行:
e.Item.Focused = false;
Run Code Online (Sandbox Code Playgroud)
最终代码:
yourListView.ItemSelectionChanged += yourListView_ItemSelectionChanged;
private void yourListView_ItemSelectionChanged(
object sender,
ListViewItemSelectionChangedEventArgs e)
{
if (e.Item.BackColor == Color.LightGray)
{
e.Item.Selected = false;
e.Item.Focused = false;
}
}
Run Code Online (Sandbox Code Playgroud)