【问题标题】:VB Getting the selected item from a List ViewVB 从列表视图中获取所选项目
【发布时间】:2015-09-17 22:09:09
【问题描述】:

我有一个包含两列的列表视图,我希望能够保存所选行的最左侧列的值,或者甚至更好地保存它,以便用户单击右侧或左侧列对于任何给定的行,整行都会选择,而不仅仅是单击的字段。

但是我正在努力保存比行突出显示更重要的字段。

在列表框中会是

string = listbox1.selecteditem.tostring

但是这似乎不适用于列表视图。它甚至不允许我放置“Selecteditem”,而是要求我放置选定的项目,但这似乎也没有达到我想要的效果。

当我使用代码时:

string = ListView1.SelectedItems.ToString

我得到了

的结果
string = "System.Windows.Forms.ListView+SelectedListViewItemCollection"

尽管选择的字段实际上是“EGG”。

我需要有两列,因此无法切换到使用列表框,尽管这似乎是更简单的解决方案。
当我尝试用谷歌搜索这个问题时,我只能找到 C# 的东西

【问题讨论】:

  • 开启 FullRowSelect。 SelectedItems.ToString 指的是选定项目的集合。 SelectedItems(0).Text 引用第一个选定项的 text 属性。
  • strPicked = ListView1.SelectedItems(0).Text 结果告诉你,它是一个集合,所以你必须指出你想要哪个
  • @Mort Right 谢谢!我想这会是这样简单的事情,但我想不通,将其作为答案而不是评论发布,这样我就可以将其作为答案?

标签: vb.net visual-studio-2010 listview


【解决方案1】:

设置 FullRowSelect 以选择整行。

SelectedItems.ToString 指的是选中项的集合。

SelectedItems(0).Text 引用第一个选定项的文本属性。

【讨论】:

  • 如何获取所选行第二列中项目的值? selecteditems(1).tostring 不起作用,我猜我必须在某个地方添加一个 .subitems 但在哪里?
  • SelectedItems(0).SubItems(1).Text
  • 谢谢!我完全尝试过,只使用了 .tostring 而不是 .text ,它只是给了我所选项目的值而不是子项目
  • 另一个问题,对不起。我有代码,以便在按下按钮时,将所选项目的值保存为变量。但是,如果用户在没有先选择行的情况下单击按钮,程序就会崩溃。有没有办法避免这种情况?我尝试使用 if 语句来表示,如果 selecteditems(0).text = "" then 退出子程序,但这不起作用。有没有办法在表单加载时自动选择一行?
  • 您在这里物有所值! :D 尝试以下方法: If Not yourListView.SelectedItem Is Nothing Then
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-12
  • 2016-08-04
相关资源
最近更新 更多