【问题标题】:Focus on next item in a ListView after deleting the selected item删除所选项目后,关注 ListView 中的下一个项目
【发布时间】:2015-02-20 01:18:21
【问题描述】:

这可能很简单。当我删除一个 ListView 项目时,我希望它选择它上面或下面的项目。如果我想删除列表中的 5 个项目,我只想单击删除按钮 5 次,而不必继续选择要删除的项目。在这个 ListView 中,我不能允许多选。

    private void removeSelectionButton_Click(object sender, EventArgs e)
    {
        //Remove Selection
        if (listView.SelectedItems.Count > 0)
        {
            listView.SelectedItems[0].Remove();
        }
    }

【问题讨论】:

    标签: c# winforms


    【解决方案1】:

    您需要获取要删除的项目的索引,将其删除,然后将选择设置为靠近已删除项目的项目。

    var itemToRemove = listView.SelectedItems[0];
    int selectedIndex = listView.Items.IndexOf(itemToRemove);
    itemToRemove.Remove();
    if (selectedIndex >= listView.Items.Count) selectedIndex--;
    listView.Items[selectedIndex].Selected = true;
    

    您可能需要确保列表视图具有焦点(调用listView.Select())才能看到选择或将HideSelection 设置为false。此外,在尝试将下一项设置为选中之前,您还需要检查最后一项是否已删除。

    【讨论】:

    • 如果只有一项,会导致ArgumentOutOfRangeException
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    • 2011-01-18
    • 1970-01-01
    • 2011-06-29
    • 2018-09-02
    • 1970-01-01
    相关资源
    最近更新 更多