如何从ListView控件中的所有项目中删除焦点?

时间:2009-05-02 00:35:19

标签: c# winforms listview

ListView控件中,焦点在于该控件中的某些Item - 也就是说,控件保持其自身的内部概念,可以使用{{{ 1}}属性。

我希望没有项目可以集中注意力。换句话说,我希望FocusedItem属性设置为FocusedItem。知道如何实现这个目标吗?

3 个答案:

答案 0 :(得分:7)

扩展Vanuan的答案:

if (listView1.FocusedItem != null)
{
    listView1.FocusedItem.Focused = false;
}

有些东西告诉我你也想要取消选择该项目。所以,你可能也想这样做:

if (listView1.SelectedItems.Count != 0)
{
    listView1.SelectedItems[0].Selected = false;
}

答案 1 :(得分:4)

我认为,它是

listView1.FocusedItem.Focused=false;

确保listView1.FocusedItem不为空。

(感谢 brianpeiris 扩展)

答案 2 :(得分:1)

将新项目添加到列表视图控件时,它会在项目周围绘制虚线框。在某些情况下,您不需要此视觉提示。简单地选择所选项目就足够了。这是在将新项目添加到列表视图控件时阻止虚线框显示的一种方法。

ListViewItem item = new ListViewItem();
myListView.Items.Add(item);
myListView.SelectedItems.Clear();
myListView.FocusedItem = null;
myListView.Refresh();

更新:
我的解决方案无法解决问题。我希望有一种简单的方法可以“取消对焦”一个控件,但谷歌搜索几个小时后我找不到任何一个。我也在寻找一种方法来防止这些虚线出现。当我单击按钮添加列表视图项时,没有问题。只有当我按Tab键进入按钮(接收输入焦点)后按此键才会显示。