我有 2 个复选框控件,并希望第二个控件中的项目反映第一个控件中的选中状态。例如:
Checklistbox1 = 苹果、芒果、香蕉、草莓、葡萄
然后我检查了芒果和葡萄。
清单框2 = 0,1,0,0,1
我该怎么做?
我有 2 个复选框控件,并希望第二个控件中的项目反映第一个控件中的选中状态。例如:
Checklistbox1 = 苹果、芒果、香蕉、草莓、葡萄
然后我检查了芒果和葡萄。
清单框2 = 0,1,0,0,1
我该怎么做?
如果您有一个大列表,这可能会更有效率,但您最终会得到相同的结果。
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 的代码产生更一致的结果,但如果您需要做任何其他事情当您选择一个项目时,您可能希望它关闭
这应该完成你想要的。请注意,如果您有一个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