vb.net – 多选列表框
我在表单上有一个列表框,它适用于我想要做的事情.
我想编辑表单上的项目,这意味着填充列表框,然后选择相关项目. 我的列表框包含项目大小列表,我想选择属于正在编辑的项目的大小. 可以有人给我一些指示. 我试过me.lstItemSizes.SetSelected(i,true),但这仅适用于单个项目. 任何帮助将不胜感激. 我的代码: Private Sub SelectItemSizes(ByVal itemID As Integer) Dim itemSizes As IList(Of ItemSize) = _sizeLogic.GetItemSizes(itemID) Me.lstItemSizes.SelectionMode = SelectionMode.MultiExtended If (itemSizes.Count > 0) Then For i As Integer = 0 To Me.lstItemSizes.Items.Count - 1 For x As Integer = 0 To itemSizes.Count - 1 If (CType(Me.lstItemSizes.Items(i),PosSize).SizeID = itemSizes(x).SizeID) Then Me.lstItemSizes.SetSelected(i,True) Else Me.lstItemSizes.SetSelected(i,False) End If Next Next End If End Sub
你是否将selectionmode设置为multi?
您需要指定它以允许多个选择. 然后你可以这样做: Dim i as Integer=0 For i=0 To Me.listBox.SelectedItems.Count -1 'display the listbox value next i 这是一个屏幕截图: 在列表框上设置属性后,根据要选择的值调用setselected. me.lstItemSizes.SetSelected(3,true) me.lstItemSizes.SetSelected(4,true) me.lstItemSizes.SetSelected(9,true) 在这里你可以添加20个数字,只选择偶数. Dim i As Integer 'load the list with 20 numbers For i = 0 To 20 Me.ListBox1.Items.Add(i) Next 'now use setselected 'assume only even are selected For i = 0 To 20 If i Mod 2 = 0 Then Me.ListBox1.SetSelected(i,True) End If Next 第3次编辑 看看你循环的方式,让我们假设我创建了一个整数列表,我的vb.net生锈了我主要用C#开发.但假设你这样做: Dim l As New List(Of Integer) l.Add(2) l.Add(6) l.Add(20) 您的列表中只有三个项目,因此首先根据列表中的项目进行循环,然后在列表框中的项目中进行循环,反之亦然.看这个: Dim i As Integer Dim l As New List(Of Integer) l.Add(2) l.Add(6) l.Add(20) 'load the list with 20 numbers For i = 0 To 20 Me.ListBox1.Items.Add(i) Next Dim lCount As Integer = 0 For lCount = 0 To l.Count - 1 For i = 0 To 20 If i = l.Item(lCount) Then Me.ListBox1.SetSelected(i,True) Exit For End If Next Next 在代码中,我的列表只包含3个项目:2个,6个和20个. 请注意,在我的for循环中,一旦找到列表中的项目,我就不再需要循环,所以我退出了.这确保我不会过度所需的循环量.找到项目后退出并返回列表对象计数. 运行我的代码之后是结果 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |