2

我想将选中列表框中的选中项目添加到我的组合框中,但我这里有一个小问题。组合框仅显示上次检查的 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

任何人都可以帮我显示所有检查项目?感谢您的帮助...

4

3 回答 3

2

您没有项目添加到组合框中,而只是设置其Text属性。那只是改变组合框中当前显示的文本,一次只能显示一项。

如果您希望这些项目是永久的和可选择的,您需要它们添加到组合框控件的Items集合中。

示例代码:

If CheckedListBox1.CheckedItems.Count > 0 Then
    For Each checkedItem In CheckedListBox1.CheckedItems
        cbCheckedItem.Items.Add(checkedItem.ToString())
    Next
End If

或者,更好的是,使用以下AddRange方法

If CheckedListBox1.CheckedItems.Count > 0 Then
    Dim checkedItems() As String = CheckedListBox1.CheckedItems.Cast(Of String).ToArray()
    cbCheckedItems.Items.AddRange(checkedItems)
End If
于 2011-12-24T10:12:12.177 回答
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()

因为当它使用示例代码单击时,它将具有单击的那个,然后在下一次单击时将返回它单击的上一个,然后在组合框选择菜单中全部编译新的

也许我的回答可以帮助你解决问题

于 2011-12-29T18:36:32.520 回答
0

组合框没有多选选项。因此一次只能选择一项。

于 2011-12-24T10:11:43.947 回答