如何将checkedlistbox中的选中项添加到组合框中

时间:2011-12-24 09:55:42

标签: vb.net combobox checkedlistbox

我想将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

任何人都可以帮我显示所有选中的项目? 谢谢你的帮助......

3 个答案:

答案 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没有多选选项。所以一次只能选择一个项目。