-2

我有 2 个复选框控件,并希望第二个控件中的项目反映第一个控件中的选中状态。例如:

Checklistbox1 = 苹果、芒果、香蕉、草莓、葡萄

然后我检查了芒果和葡萄。

清单框2 = 0,1,0,0,1

我该怎么做?

4

2 回答 2

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 的代码产生更一致的结果,但如果您需要做任何其他事情当您选择一个项目时,您可能希望它关闭

于 2015-11-03T10:24:13.327 回答
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
于 2015-11-02T15:32:54.150 回答