Ваше описание несколько перевернуто.
Не ясно, хотите ли вы установить ListBox.SelectedItem
, используя текст TextBox
, или вы хотите установить TextBox.Text
с текстом SelectedItem
ListBox.
Код говорит одно, а описание другое.Возможно, ваша ошибка вызвана нулевым значением SelectedItem
(вы ничего не выбрали).
Но, если вы хотите установить TextBox.Text
с текстом ListBox.SelectedItem
, вы можете использовать GetItemText () метод.Этот метод имеет плюс, он не вызовет исключения, если в списке нет выбранных элементов (SelectedItem - null
(nothing
)).
TextBox1.Text = ListBox1.GetItemText(ListBox1.SelectedItem)
Противоположное:
Вы можете использовать методы ListBox FindString () и 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()
method.
Элемент задается только полным соответствием, но он чувствителен к регистру.