2011-12-24 183 views
2

我想将checkedlistbox中的选中项添加到我的组合框中,但我在这里遇到了一些问题。 Combobox只显示最后一项检查的项目。 这是我的示例代码。如何将checkedlistbox中的选中项添加到组合框中

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 

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

回答

1

奇怪的是CheckedListBox有CheckedItems属性,它是一个集合。因此,您可以像使用任何其他集合一样使用For或For Each循环来遍历它。

然后,每个项目都需要添加到组合框的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() 

,因为它何时会与示例代码点击它就会有再点击下一个点击将返回前一个是点击了一个再新一个所有组合框中选择菜单编译

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

+1

我困惑的是,为什么你5天后发布了一个答案,说确切我也是这么做的,就像我一样很显然,为什么它得到3 upvotes相比,我1。当然,你应该已经提高了我的答案,因为你给了你想要发布什么代码的想法... – 2011-12-30 05:18:44

+0

我想我不需要upvote你。它基本上是我的知识,而不是你的。大声笑 – DevYudh 2011-12-30 05:32:59

0

Combobox没有多选选项。因此一次只能选择一个项目。

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 
+0

感谢您的帮助... – Flashidkz 2011-12-24 11:04:40

相关问题