vb.net – 多选列表框

前端之家收集整理的这篇文章主要介绍了vb.net – 多选列表框前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在表单上有一个列表框,它适用于我想要做的事情.

我想编辑表单上的项目,这意味着填充列表框,然后选择相关项目.

我的列表框包含项目大小列表,我想选择属于正在编辑的项目的大小.

可以有人给我一些指示.

我试过me.lstItemSizes.SetSelected(i,true),但这仅适用于单个项目.

任何帮助将不胜感激.

我的代码

  1. Private Sub SelectItemSizes(ByVal itemID As Integer)
  2.  
  3. Dim itemSizes As IList(Of ItemSize) = _sizeLogic.GetItemSizes(itemID)
  4.  
  5. Me.lstItemSizes.SelectionMode = SelectionMode.MultiExtended
  6.  
  7. If (itemSizes.Count > 0) Then
  8.  
  9. For i As Integer = 0 To Me.lstItemSizes.Items.Count - 1
  10.  
  11. For x As Integer = 0 To itemSizes.Count - 1
  12.  
  13. If (CType(Me.lstItemSizes.Items(i),PosSize).SizeID = itemSizes(x).SizeID) Then
  14. Me.lstItemSizes.SetSelected(i,True)
  15. Else
  16. Me.lstItemSizes.SetSelected(i,False)
  17. End If
  18.  
  19. Next
  20.  
  21. Next
  22.  
  23. End If
  24.  
  25. End Sub
你是否将selectionmode设置为multi?

您需要指定它以允许多个选择.

然后你可以这样做:

  1. Dim i as Integer=0
  2.  
  3. For i=0 To Me.listBox.SelectedItems.Count -1
  4. 'display the listBox value
  5. next i

这是一个屏幕截图:

在列表框上设置属性后,根据要选择的值调用setselected.

  1. me.lstItemSizes.SetSelected(3,true)
  2. me.lstItemSizes.SetSelected(4,true)
  3. me.lstItemSizes.SetSelected(9,true)

在这里你可以添加20个数字,只选择偶数.

  1. Dim i As Integer
  2.  
  3. 'load the list with 20 numbers
  4. For i = 0 To 20
  5. Me.ListBox1.Items.Add(i)
  6. Next
  7.  
  8. 'now use setselected
  9. 'assume only even are selected
  10. For i = 0 To 20
  11. If i Mod 2 = 0 Then
  12. Me.ListBox1.SetSelected(i,True)
  13. End If
  14. Next

第3次编辑

看看你循环的方式,让我们假设我创建了一个整数列表,我的vb.net生锈了我主要用C#开发.但假设你这样做:

  1. Dim l As New List(Of Integer)
  2.  
  3. l.Add(2)
  4. l.Add(6)
  5. l.Add(20)

您的列表中只有三个项目,因此首先根据列表中的项目进行循环,然后在列表框中的项目中进行循环,反之亦然.看这个:

  1. Dim i As Integer
  2. Dim l As New List(Of Integer)
  3.  
  4. l.Add(2)
  5. l.Add(6)
  6. l.Add(20)
  7.  
  8. 'load the list with 20 numbers
  9. For i = 0 To 20
  10. Me.ListBox1.Items.Add(i)
  11. Next
  12.  
  13. Dim lCount As Integer = 0
  14.  
  15. For lCount = 0 To l.Count - 1
  16. For i = 0 To 20
  17. If i = l.Item(lCount) Then
  18. Me.ListBox1.SetSelected(i,True)
  19. Exit For
  20. End If
  21. Next
  22. Next

代码中,我的列表只包含3个项目:2个,6个和20个.
我将这些项添加到l,它只是一个列表对象.
所以现在我必须循环使用这3个数字并与我的列表框进行比较.你可以在列表框上循环,然后考虑列表对象.

请注意,在我的for循环中,一旦找到列表中的项目,我就不再需要循环,所以我退出了.这确保我不会过度所需的循环量.找到项目后退出并返回列表对象计数.

运行我的代码之后是结果

猜你在找的VB相关文章