在单独的面板中配对单选按钮
本文关键字:单选按钮 单独 | 更新日期: 2023-09-27 18:18:27
我有一个windows表单应用程序,它在表单中显示了一些用户控件。每个用户控件都有一个单选按钮。是否可以手动配对单选按钮,以便同时只能选择其中一个?我的另一个选择是在单击单选按钮时检查每个单选按钮,这样所有其他单选按钮都不被选中。
RadioButton rb1 = new RadioButton { Text = "RB1" };
RadioButton rb2 = new RadioButton { Text = "RB2" };
RadioButtonGroup rgb = new RadioButtonGroup(rb1, rb2);
foreach (RadioButton rb in new [] { rb1, rb2 }) {
Form f = new Form { Text = rb.Text };
f.Controls.Add(rb);
f.Show();
rb.CheckedChanged += delegate {
MessageBox.Show(rb.Text + ": " + rb.Checked);
};
}
private class RadioButtonGroup {
RadioButton[] radioButtons = null;
public RadioButtonGroup(params RadioButton[] radioButtons) {
this.radioButtons = radioButtons;
foreach (var rb in radioButtons) {
rb.AutoCheck = false;
rb.Click += rb_Click;
}
}
void rb_Click(object sender, EventArgs e) {
foreach (RadioButton rb in radioButtons)
rb.Checked = (rb == sender);
}
}