2

チェックした項目をcheckedlistboxからコンボボックスに追加したいのですが、ここで少し問題があります。コンボボックスには、最後にチェックされた 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プロパティを設定するだけです。これは、コンボ ボックスに現在表示されているテキストを変更するだけで、一度に表示できる項目は 1 つだけです。

アイテムを永続的で選択可能にしたい場合は、それらをコンボ ボックス コントロールのコレクションに追加する必要があります。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

コンボボックスには複数選択オプションがありません。そのため、一度に 1 つの項目しか選択できませんでした。

于 2011-12-24T10:11:43.947 に答える