当前位置: 首页 > 编程语言 > C#

获取ListView中选中项的索引分享

时间:2023-04-10 13:12:26 C#

获取ListView中选中项的索引我搜索了大约一个小时,但没有找到最佳解决方案。我正在从VB.NET迁移到C#Forms和C#WPF。没关系...所以我将此代码用于C#表单并且它有效,但在C#WPF中无效if(ListView1.SelectedItems.Count>0){for(lcount=0;lcount<=ListView1.Items.Count-1;lcount++){if(ListView1.Items[lcount].Selected==true){var2=lcount;休息;}}}这就是我想要获取列表框中被点击项目的索引的方式。我在.SELECTED中有错误,请帮忙。您可以从listView中获取SelectedIndex。无需遍历所有项目,因为根据您的代码,您似乎对所选项目的索引感兴趣。var2=ListView1.SelectedIndex;或者如果只对第一个索引感兴趣,这将起作用:if(lst.SelectedItems.Count>0){var2=lst.Items.IndexOf(lst.SelectedItems[0]);}如果您使用的是.NETCompactFramework,则不支持SelectedIndex。对于一般解决方案,我更喜欢SelectedIndices:ListView.SelectedIndexCollectionindices=lst.SelectedIndices;if(indices.Count>0){//Dosomethingwithindices[0]}SelectedIndex似乎不适用于VisualStudio2015。相反,您可以使用SelectedIndices[x],其中x=0将为您提供第一个选定的项目:listView.SelectedIndices[0]您还可以将MultipleSelect属性设置为false,以允许一次只选择一个项目。它可以返回NULL。SelectedIndexChanged事件也可以被触发两次。第一次,还没有选择。所以找到它的唯一安全方法是:intp=lv1.FocusedItem.Index;...现在intp具有正确的值...为什么它不带回SelectedIndex?在当前命名空间之后添加此扩展名。publicstaticclassExtension{publicstaticintSelectedIndex(thisListViewlistView){if(listView.SelectedIndices.Count>0)returnlistView.SelectedIndices[0];否则返回0;将此类包装在名为Extensions的命名空间中,并将其添加到您的项目命名空间以使用该扩展。使用扩展;然后像这样使用privatevoidListView1_SelectedIndexChanged(objectsender,EventArgse){intselectionindex=ListView1.SelectedIndex();ListViewItemselectedItem=ListView1.Items[selectionindex];PS扩展方法应该在Else上返回-1,但只要你从SelectedIndexChanged事件中使用它,你就会没事,因为如果没有项目,它不会被触发。这是设计使然,因为SelectedIndexChanged事件被触发了两次。一旦取消选择初始项目,然后选择新项目。正确的方法是返回-1并检查负数。这也是有人和ArgumentOutOfRangeexception的原因。sColl.Clear();字符串项=String.Empty;以上就是C#学习教程:获取ListView中选中的Item的索引全部内容分享。如果对你有用,需要进一步了解C#学习教程,希望你多加关注—if(listView1.SelectedItems.Count>0){for(inti=0;i本文收集自来源于网络,不代表立场,如涉及侵权,请点击右边联系管理员删除,如需转载请注明出处:

最新推荐
猜你喜欢