阅读量:0
在C#中实现复选框的级联选择可以通过事件处理来实现。我们可以在父复选框的CheckedChanged事件中处理子复选框的选中状态。
以下是一个示例代码,实现了一个父复选框和多个子复选框的级联选择:
private void parentCheckBox_CheckedChanged(object sender, EventArgs e) { foreach (var control in Controls) { if (control is CheckBox checkBox) { checkBox.Checked = parentCheckBox.Checked; } } } private void childCheckBox_CheckedChanged(object sender, EventArgs e) { bool allChecked = true; foreach (var control in Controls) { if (control is CheckBox checkBox && checkBox != parentCheckBox) { if (!checkBox.Checked) { allChecked = false; break; } } } parentCheckBox.Checked = allChecked; }
在这个示例代码中,parentCheckBox是父复选框,childCheckBox是子复选框。当父复选框的选中状态改变时,会将所有子复选框的选中状态设置为与父复选框相同;当任意一个子复选框的选中状态改变时,会判断所有子复选框的选中状态,如果所有子复选框都被选中,则将父复选框的选中状态设置为选中,否则设置为未选中。
你可以根据实际需求进行修改和扩展这个示例代码,以实现更复杂的级联选择功能。