我在另一个帖子中有一个listview,我以安全线程安全的方式添加项目,如下所示:
listView1.Invoke(new AddTolstDiscoveredDevices(AddDiscoveryEntry), ReceiveString);
但是当我尝试获取所选项目时,它会说索引0
无效。
我用过这个:
string IpAdr = listView1.SelectedItems[0].SubItems[0].Text;
错误= "InvalidArgument=Value of '0' is not valid for 'index'.\r\nParameter name: index"
然后因为它在另一个线程上,我试图像这样调用:
public string GetCurrentItem(int location)
{
if (this.listView1.InvokeRequired)
{
getCurrentItemCallBack d = new getCurrentItemCallBack(GetCurrentItem);
return this.Invoke(d, new object[] { location }).ToString();
}
else
{
return this.listView1.Items[location].Text;
}
}
当我打电话时,我得到了同样的错误。
我无法理解有什么不对。
任何帮助表示赞赏。 THX。
答案 0 :(得分:2)
尝试使用ListView.SelectedIndices属性
http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.selectedindices.aspx
if (this.listView1.SelectedIndices.Count > 0)
{
string IpAdress = listView1.Items[listView1.SelectedIndices[0]].Text;
}