我遇到问题,我使用listview ListView.SelectedItems [0]中的方法将当前选定的ListViewItem返回到函数中的参数,该函数在选中时将项目文本显示在文本框中。此方法设置为Listview_SelectedIndexChanged事件。问题是,当我之前选择了一个不同的项目时,会出现一个错误,即
ArgumentOutOfRangeException未处理 InvalidArgument =值'0'对'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 :(得分:4)
“没有选择”也是一种可能的状态。在访问索引0处的项目之前,请确保SelectedItems.Count >= 1
。
答案 1 :(得分:1)
我第二次点击某个项目时发现此问题。
第一次点击效果很好,但第二次点击会导致异常。我认为这是因为当我们点击另一个项目时,程序会清除第一个项目的“选择状态”,并将第二个项目标记为“已选择”。在将第二个项目标记为“已选择”之前,程序将处于ListView中没有选择项的情况下,这很可能是程序生成异常的原因。
所以我们需要检查SelectedItems.Count >= 1