我有2個checklistbox控件,並且希望第二個控件中的項目能夠鏡像第一個控件的選中狀態。例如:如何將一個CheckedListBox中的選中項目反映到另一個?
Checklistbox1 = APPLE,MANGGO,香蕉,草莓,葡萄
然後我檢查manggo和葡萄。
checklistbox2 = 0,1,0,0,1
我怎麼去呢?
我有2個checklistbox控件,並且希望第二個控件中的項目能夠鏡像第一個控件的選中狀態。例如:如何將一個CheckedListBox中的選中項目反映到另一個?
Checklistbox1 = APPLE,MANGGO,香蕉,草莓,葡萄
然後我檢查manggo和葡萄。
checklistbox2 = 0,1,0,0,1
我怎麼去呢?
這應該完成你想要的。請注意,如果您有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
如果你有一個很大的列表,這可能會更有效一些,但最終會得到相同的結果。
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的結果,但如果您在選擇某件商品時需要做其他任何事情,則可能需要將其關閉
但在checkedlistbox2中沒有項目,並且在checkedlistbox1中列出了來自數據庫的項目 – Antroyz
因此,您需要在開始時列出項目列表checkedlistbox1,但沒有在checkedlistbox2中。當您檢查checkedlistbox1中的項目時,是否希望僅使用checkedlistbox1中的項目的檢查狀態或checkedlistbox1中所有項目的文本填充checkedlistbox2?您能否顯示您用來填充checkedlistbox1的代碼? –
@ant - 我不知道你是否收到上述評論的通知 - 但如果你可以讓我知道你的答案,我可以更多地考慮它 - –