【发布时间】:2014-05-20 14:52:28
【问题描述】:
我有许多不同的选项卡,并且在这些选项卡中我有一些单选按钮。我只想在标签页中一次选择一个单选按钮。我有以下代码
private void RadioButtonCheckedChanged(object sender, EventArgs e)
{
TabControl.TabPageCollection pages = tabControl1.TabPages;
var rdoButtonName = sender as RadioButton;
foreach (TabPage page in pages)
{
foreach (Control item in page.Controls)
{
if (item is RadioButton)
{
if (rdoButtonName.Name == item.Name)
{
rdoButtonName.Checked = true;
}
else
{
rdoButtonName.Checked = false;
}
}
}
}
}
当我点击第一个标签页上的单选按钮时,它不允许我更改它们的选中状态,但它可以在其他页面上。有人能看出上面的代码有什么问题吗?
【问题讨论】:
-
如果您将它们放在组框或其他容器中,则不必手动处理它们的 Checked 状态。
-
@etaiso - 看起来他只想在所有标签页中选择一个单选按钮
-
@Inkey - 第一个标签页上的单选按钮是否连接到 RadioButtonCheckedChanged 处理程序?
-
@etaiso 他们在分组框中。是的,这正是我需要实现的,是的,它们都链接到 RadioButtonCheckedChanged 处理程序
-
@Inkey 您的所有 RadioButtons CheckedChanged 事件是否都附有此代码?