2015-11-02 29 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 - 我不知道你是否收到上述评论的通知 - 但如果你可以让我知道你的答案,我可以更多地考虑它 - –

相关问题