#vb.net #selecteditem #listboxitem
#vb.net #selecteditem #элемент списка
Вопрос:
Пытаюсь проверить, какие элементы списка выбраны. Я хочу разрешить пользователю выбирать несколько элементов в списке, чтобы строка могла быть сохранена в массиве, где также хранится список. Это система переклички (задача для моих студентов 10-го курса). Я просто не могу правильно подобрать синтаксис для списка. Для списка установлен режим множественного выбора.
Кстати
If Listbox.SelectedItem = true Then
Не работает. Возвращает ошибку.
Мой приведенный ниже код возвращает первый выбранный элемент (в окне сообщения), но не остальные. Сейчас я просто хожу по кругу. должен быть более простой способ. Мысли?
Private Sub BtnRollCall1_Click(sender As Object, e As EventArgs) Handles btnRollCall1.Click
Dim ExcursionArray(29, 4) As String
Dim selected As Integer
Dim LoadNames As StreamReader = File.OpenText("ClassList.txt")
For i = 0 To 29
ExcursionArray(i, 0) = (LoadNames.ReadLine())
lbxRollCall.Items.Add(ExcursionArray(i, 0))
Next
For Each SelectedItem As string In lbxRollCall.SelectedItems
selected = lbxRollCall.SelectedIndex
ExcursionArray(selected, 1) = "a"
Next
For x = 0 To 29
If (ExcursionArray(x, 1) = "a") Then
MsgBox(ExcursionArray(x, 0))
End If
Next
End Sub
Ответ №1:
Похоже, что на самом деле вы хотите обновить 2D-массив и установить для второго «столбца» значение «a», если соответствующая «строка» выбрана в ListBox
. Один из способов сделать это будет выглядеть так:
For Each selectedIndex In lbxRollCall.SelectedIndices
ExcursionArray(selectedIndex, 1) = "a"
Next
Другой вариант будет выглядеть так:
For i = 0 To ExcursionArray.GetUpperBound(0)
If lbxRollCall.GetSelected(i) Then
ExcursionArray(i, 1) = "a"
End If
Next