我正在尝试在列表框中获取所选文本以显示在列表框中。
我有一个按钮,当我单击该按钮时,它将在列表框中显示选定项的文本。
我已经尝试使用Listbox.SelectedItem
使列表框显示在文本框中:
Listbox1.SelectedItem = Textbox1.Text
执行此操作时,出现错误:
System.NullReferenceException:'对象变量或With块变量 没有设置。'
答案 0 :(得分:0)
Listbox1.Text = textbox1.text 让我知道它对您有帮助
答案 1 :(得分:0)
您的描述有些颠倒。
目前尚不清楚是要使用ListBox.SelectedItem
的文本设置TextBox
还是要使用ListBox的TextBox.Text
的文本设置SelectedItem
。
代码说明一件事,描述又说明另一件事。您遇到的错误很可能是由SelectedItem
为空引起的(您尚未选择任何内容)。
但是,如果要使用TextBox.Text
文本设置ListBox.SelectedItem
,则可以使用GetItemText()方法。此方法有一个加号,如果列表框没有选定的项目(SelectedItem为null
(nothing
),则不会引发异常。
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()
方法。
只有完全匹配才能设置项目,但区分大小写。