如何阅读列表框的SelectedItem?

时间:2019-05-16 22:00:02

标签: vb.net winforms

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

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

Listbox1.SelectedItem = Textbox1.Text

执行此操作时,出现错误:

  

System.NullReferenceException:'对象变量或With块变量   没有设置。'

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您的描述有些颠倒。
目前尚不清楚是要使用ListBox.SelectedItem的文本设置TextBox还是要使用ListBox的TextBox.Text的文本设置SelectedItem

代码说明一件事,描述又说明另一件事。您遇到的错误很可能是由SelectedItem为空引起的(您尚未选择任何内容)。
但是,如果要使用TextBox.Text文本设置ListBox.SelectedItem,则可以使用GetItemText()方法。此方法有一个加号,如果列表框没有选定的项目(SelectedItem为nullnothing),则不会引发异常。

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

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

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()方法。
只有完全匹配才能设置项目,但区分大小写。