我想将checkedlistbox中的已检查项目添加到我的组合框中,但我在这里遇到了一些问题。 Combobox仅显示上次检查的1项。 这是我的示例代码。
If CheckedListBox1.CheckedItems.Count <> 0 Then
For i As Integer = 0 To CheckedListBox1.CheckedItems.Count - 1
cbCheckedItem.Text = CheckedListBox1.CheckedItems(i).ToString
Next i
End If
任何人都可以帮我显示所有选中的项目? 谢谢你的帮助......
答案 0 :(得分:2)
您不是将项添加到组合框中,而是仅设置其Text
属性。这只是 更改当前显示在组合框中的文本,并且一次只能显示一个项目。
如果您希望这些项目是永久性且可选择的,则需要将添加到组合框控件的Items
collection。
示例代码:
If CheckedListBox1.CheckedItems.Count > 0 Then
For Each checkedItem In CheckedListBox1.CheckedItems
cbCheckedItem.Items.Add(checkedItem.ToString())
Next
End If
或者,更好的是,使用AddRange
method:
If CheckedListBox1.CheckedItems.Count > 0 Then
Dim checkedItems() As String = CheckedListBox1.CheckedItems.Cast(Of String).ToArray()
cbCheckedItems.Items.AddRange(checkedItems)
End If
答案 1 :(得分:1)
奇怪的是,CheckedListBox有一个CheckedItems属性,它是一个集合。因此,您可以像使用For或For Each循环一样循环遍历它。
然后,每个项目都需要添加到ComboBox的Items集合中。
喜欢这样的样本:
Public Class frmCheckedListBox
Private Sub frmCheckedListBox_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.CheckedListBox1.Items.Clear()
Me.CheckedListBox1.BeginUpdate()
Me.CheckedListBox1.Items.Add("One")
Me.CheckedListBox1.Items.Add("Two")
Me.CheckedListBox1.Items.Add("Three")
Me.CheckedListBox1.Items.Add("Four")
Me.CheckedListBox1.Items.Add("Five")
Me.CheckedListBox1.EndUpdate()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
For Each Item As String In Me.CheckedListBox1.CheckedItems
Me.ComboBox1.Items.Add(Item)
Me.ComboBox1.SelectedIndex = 0
Next
End Sub
结束班
如示例代码所示,CheckedItems集合包含已检查的项目,顾名思义。它不包含每个项目的布尔值,以指示是否检查它。如果检查了一个项目,那么该项目位于CheckedItems中,如果不是,那么它不是。您只需循环遍历集合并获取其中的每个项目,因为它包含所有已检查的项目,而不包含所有项目。
最后你可以把:
Me.Combobox1.items.clear()
因为当它点击示例代码时,它会有一个点击然后在下一次点击时将返回它点击的前一个然后在组合框选择菜单中编译的全新代码
也许我的回答可以帮助你解决问题
答案 2 :(得分:0)
Combobox没有多选选项。所以一次只能选择一个项目。