问题描述
努力测试选择了哪些列表框项目。我想允许用户在列表框中选择多个项目,以便可以将字符串存储在还存储列表的数组中。这是一个点名系统(这是我10年级学生的任务)。我只是无法正确获取列表框的语法。列表框设置为MultiSelection。
顺便说一句
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
解决方法
如果您在ListBox
中选择了相应的“行”,似乎您真正想做的就是更新2D数组并将第二个“列”设置为“ a”。一种方法是这样的:
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