繁体   English   中英

C#:使用ListView.SelectedItems [0]后选择其他项目的问题

[英]C#: Problem with selecting different items after using ListView.SelectedItems[0]

我有一个问题,我正在使用listview ListView.SelectedItems [0]中的方法将当前选择的ListViewItem返回到函数中的参数中,该函数在选中时将项目文本显示在文本框中。 此方法设置为Listview_SelectedIndexChanged事件。 问题是,当我在先前已经选择一个项目之后现在选择另一个项目时,出现错误消息,

未处理ArgumentOutOfRangeException InvalidArgument =值'0'对于'index'无效参数名:index

当我想从列表视图中返回下一个当前选定的项目时,为什么会导致该错误? 它仅在先前选择一个项目之后选择另一个项目后才会发生。

这是事件:

    private void lvMyItems_SelectedIndexChanged(object sender, EventArgs e)
    {
        // Return currently selected item.
        ShowItem(lvMyItems.SelectedItems[0]); // The error occurs here.
    }

这是它正在调用的方法:

    private void ShowItem(ListViewItem MyItem)
    {
        // This method inputs the text and subitem text of my listview item into two textboxes.
        txtItemName.Text = MyItem.Text;
        txtItemNickName.Text = MyItem.SubItems[1].Text;
    }

“无选择”也是一种可能的状态。 在访问索引为0的项目之前,请确保SelectedItems.Count >= 1

当我第二次单击某个项目时,我看到会出现此问题。

第一次单击可以正常工作,但是第二次单击会导致异常。 我认为这是因为当我们单击另一个项目时,程序会清除第一个项目的“选择状态”,并将第二个项目标记为“已选择”。 在将第二个项目标记为“选中”之前,程序将处于ListView中没有选择项的条件,这(很可能是)该程序随后生成异常的原因。

因此,我们需要检查SelectedItems.Count >= 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM