回 帖 发 新 帖 刷新版面

主题:关于ListView中列表项选择的错误问题

我想实现一个功能,选中ListView中一行,可取出改行的text。我将这功能写在SelectedIndexChanged事件中
private void MyListView_SelectedIndexChanged(object sender, EventArgs e)
{
    MessageBox.Show(this.MyListView.SelectedItems[0].Text);
}
可是当我第一次单击某行的时候,正确。但我第二次单击任何行的时候却报错了。
错误提示为:
An unhandled exception of type 'system.ArgumentOutOfRangeException' occurred in System.Windows.Forms.dll
Additional information: InvalidArgument=“0”的值对于“index”无效

同样的语句,我使用
private void MyListView_Click(object sender, EventArgs e)
{
    MessageBox.Show(this.MyListView.SelectedItems[0].Text);
}
这个事件函数,一切正常。
谁能告诉我,这是为什么?

回复列表 (共1个回复)

沙发

前面加一个Application.DoEvents();应该可以解决

SelectedIndexChanged触发时SelectedItems还没有更新

我来回复

您尚未登录,请登录后再回复。点此登录或注册