如何读取列表框的 SelectedItem?

How can I read the SelectedItem of a Listbox?

我正在尝试让 ListBox 中的选定文本显示在列表框中。
我有一个按钮,当我单击该按钮时,将在列表框中显示所选项目的文本。

我已经尝试使用 Listbox.SelectedItem 让列表框在文本框中显示文本:

Listbox1.SelectedItem = Textbox1.Text

当我这样做时,出现错误:

System.NullReferenceException: 'Object variable or With block variable not set.'

Listbox1.Text=textbox1.text 让我知道它对你有帮助

你的描述有点upside-down.
不清楚是要使用 TextBox 的文本设置 ListBox.SelectedItem 还是要使用列表框的 SelectedItem 的文本设置 TextBox.Text

代码说的是一回事,描述是另一回事。您遇到的错误可能是由 null SelectedItem(您没有选择任何内容)引起的。
但是,如果你想用 ListBox.SelectedItem 文本设置 TextBox.Text,你可以使用 GetItemText() 方法。此方法有一个优点,如果列表框没有选定的项目(SelectedItem 是 null (nothing)),它不会引发异常。

TextBox1.Text = ListBox1.GetItemText(ListBox1.SelectedItem)

相反:
您可以使用 ListBox FindString() and FindStringExact() 方法在控件集合中找到与给定字符串对应的项目。 前者查找 ListBox 中以指定字符串开头的第一项,后者仅匹配整个字符串。
搜索可以从特定索引开始。它不区分大小写。

listBox1.SelectedIndex = listBox1.FindString(textBox1.Text, 0)
' or
listBox1.SelectedIndex = listBox1.FindStringExact(textBox1.Text, 0)

您可以继续搜索,将之前找到的项目的索引指定为起点:

private int lboxSearchIndex = -1;

Private Sub ButtonSearch_Click(sender As Object, e As EventArgs) Handles ButtonSearch.Click
    lboxSearchIndex = listBox1.FindString(textBox1.Text, lboxSearchIndex)
    listBox1.SelectedIndex = lboxSearchIndex
End Sub

设置 SelectedItem 就像使用 FindStringExact() 方法一样。
只有完全匹配才能设置该项目,但它区分大小写。