我有2个checklistbox控件,并希望第二个控件中的项目镜像第一个控件中的检查状态。例如:
Checklistbox1 = APPLE,MANGGO,BANANA,STRAWBERRY,GRAPE
然后我检查了芒果和葡萄。
checklistbox2 = 0,1,0,0,1
我该怎么做?
答案 0 :(得分: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
答案 1 :(得分: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
此外,您可能希望将列表框的checkonclick属性设置为true,以节省您必须单击该项目两次 - 并且使用我的代码和来自@josh的代码产生更多合理的结果,但是如果您需要当您选择某个项目时,您可能需要关闭其他任何内容