【问题标题】:How might I remove focus from all items in a ListView control?如何从 ListView 控件中的所有项目中移除焦点?
【发布时间】:2011-12-26 05:28:12
【问题描述】:

ListView 控件中,焦点位于该控件内的某个Item 上——也就是说,该控件保持其自己的焦点所在的内部概念,可以使用FocusedItem 属性检索该概念。

我希望 no 项被关注。换句话说,我希望将FocusedItem 属性设置为null。知道我该如何做到这一点吗?

【问题讨论】:

  • 你能详细说明你的问题吗?我真的不明白。
  • 试图清理一下...不幸的是,它仍然有点假-我找不到 selectedFocus 方法或成员...也许他的意思是 FocusedItem?

标签: c# winforms listview


【解决方案1】:

扩展 Vanuan 的回答:

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

某事告诉我您还想取消选择该项目。所以,你可能也想这样做:

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

【讨论】:

  • 谢谢。也正是我想要的。
【解决方案2】:

我觉得是

listView1.FocusedItem.Focused=false;

确保 listView1.FocusedItem 不为空。

(感谢 brianpeiris 的扩展)

【讨论】:

  • 它给出了未处理的异常。
【解决方案3】:

当新项目添加到列表视图控件时,它会在项目周围绘制虚线框。在某些情况下,您不想要这种视觉提示。只需突出显示选定的项目就足够了。这是在将新项目添加到列表视图控件时防止出现虚线框的一种方法。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-06
    • 1970-01-01
    • 1970-01-01
    • 2016-11-19
    • 1970-01-01
    相关资源
    最近更新 更多