2015-11-02 50 views

回答

0

這應該完成你想要的。請注意,如果您有CheckedListBox2_SelectedIndexChanged事件,您可能會收到意外的結果,因爲此代碼會觸發它。

Private Sub CheckedListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CheckedListBox1.SelectedIndexChanged 
    Dim i As Integer 
    For i = 0 To CheckedListBox2.Items.Count - 1 
     CheckedListBox2.SetItemChecked(i, False) 
    Next 
    For Each i In CheckedListBox1.CheckedIndices 
     CheckedListBox2.SetItemChecked(i, True) 
    Next 
End Sub 
0

如果你有一個很大的列表,這可能會更有效一些,但最終會得到相同的結果。

Private Sub CheckedListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CheckedListBox1.SelectedIndexChanged 
    Dim i As Integer 
    For i = 0 To CheckedListBox2.Items.Count - 1 
     CheckedListBox2.SetItemChecked(i, CheckedListBox1.GetItemCheckState(i)) 
    Next 
End Sub 

你也可能希望有你的列表框設置爲true的checkonclick屬性來拯救你不必點擊兩次項目 - 和它產生與我的兩個代碼和@josh代碼更consitent的結果,但如果您在選擇某件商品時需要做其他任何事情,則可能需要將其關閉

+0

但在checkedlistbox2中沒有項目,並且在checkedlistbox1中列出了來自數據庫的項目 – Antroyz

+0

因此,您需要在開始時列出項目列表checkedlistbox1,但沒有在checkedlistbox2中。當您檢查checkedlistbox1中的項目時,是否希望僅使用checkedlistbox1中的項目的檢查狀態或checkedlistbox1中所有項目的文本填充checkedlistbox2?您能否顯示您用來填充checkedlistbox1的代碼? –

+0

@ant - 我不知道你是否收到上述評論的通知 - 但如果你可以讓我知道你的答案,我可以更多地考慮它 - –

相關問題