C# 如何通过listview项的文本获取其索引
我试图通过listview中的文本获取项目的索引。 例如,我有一个列表视图,其中包含项:item1、item2..等等 我试着像这样获取item2的索引:C# 如何通过listview项的文本获取其索引,c#,forms,listview,C#,Forms,Listview,我试图通过listview中的文本获取项目的索引。 例如,我有一个列表视图,其中包含项:item1、item2..等等 我试着像这样获取item2的索引: MessageBox.Show(listView1.Items.IndexOf("item2"); 但它不起作用。。。 有什么帮助吗?让我们看看ListView,它的ID是listView1。为了获取此列表视图中的项目,我们必须使用以下代码: listView1.Items // Select the first ListViewItem
MessageBox.Show(listView1.Items.IndexOf("item2");
但它不起作用。。。
有什么帮助吗?让我们看看ListView,它的ID是listView1。为了获取此列表视图中的项目,我们必须使用以下代码:
listView1.Items
// Select the first ListViewItem of items, whose Text is item2
ListViewItem item = listView1.Items
.Cast<ListViewItem>()
.FirstOrDefault(x=>x.Text=="item2");
MessageBox.Show(listView1.Items.IndexOf(item).ToString());
listView1.Items的类型是什么
listView1.Items的类型为ListViewItemCollection
有关这方面的更多文档,请查看
存储在此集合listView1.Items中的对象的类型是什么
存储在listView1.Items中的对象类型为ListViewItem
有关此类的更多文档,请查看
为什么选择MessageBox.ShowlistView1.Items.IndexOfitem2;不起作用
之所以在注释中出现错误,是因为名为IndexOf的方法将ListViewItem类型的对象作为参数,并将string类型的对象作为参数传递给该方法
实际上,正如您所看到的,名为IndexOf的方法的签名如下:
public int IndexOf(
ListViewItem item
)
因此,为了获得所需项的索引,必须传递给名为IndexOf的ListViewItem方法。因此,我建议您尝试以下代码:
listView1.Items
// Select the first ListViewItem of items, whose Text is item2
ListViewItem item = listView1.Items
.Cast<ListViewItem>()
.FirstOrDefault(x=>x.Text=="item2");
MessageBox.Show(listView1.Items.IndexOf(item).ToString());
ListView.FindItemWithText方法执行您想要的操作。
请查看:
当你说它不起作用时,你是什么意思?你有什么错误吗?你得到的索引是错误的吗?Thanks I get Errors:无法从int转换为string/无法从string转换为System.windows.forms.ListViewItem请尝试使用listView1.Items.IndexOfitem2.ToString,并通知我。谢谢感谢您的帮助..但我仍然得到:错误2参数1:无法从'string'转换为'System.Windows.Forms.ListViewItem'我发现了错误,请在几分钟后查看我的答案。Thankstorry.这就是我得到的错误2参数1:无法从'int'转换为'string'。你是对的,我的错。我很抱歉。请现在就试试最新的,让我知道。谢谢,请给我几分钟时间,让我想一想我们怎样才能克服这个问题。Thanks@user3379482请尝试使用更新的代码。