不同选项卡控件上的单选按钮保持选中状态

radiobuttons on different tabcontrol stay selected

请阅读问题,因为它不是重复的。 我有一个 winforms 应用程序,我 C# 有一个带有 3 个选项卡的选项卡控件。 每个选项卡有 4 个单选按钮。 如果我 运行 应用程序,单选按钮在同一个选项卡中工作正常,但是当我 select 另一个选项卡时, selection 保留在第一个选项卡中。 我试图在更改选项卡时清除所有选中的单选按钮,但由于某种原因它不起作用。 使用的代码是:

private void UncheckLayouts(TabPage activePage)
{
    foreach (Control control in tabControl1.Controls)
    {
        if (control is RadioButton)
        {
            RadioButton rb = control as RadioButton;
            rb.Checked = false;
        }
    }
}

private void radioButton1_Click(object sender, EventArgs e)
{
    UncheckLayouts(tabControl1.SelectedTab);
}

private void radioButton2_Click(object sender, EventArgs e)
{
    UncheckLayouts(tabControl1.SelectedTab);
}
...

我也这样试过:

private void tabControl1_Deselecting(object sender, TabControlCancelEventArgs e) {
    foreach (var ctrl in e.TabPage.Controls) {
         if (ctrl is RadioButton) {
             RadioButton tb = ctrl as RadioButton;
             rb.Checked = false;
         }
    }
}

编辑: 新代码。

public Form2()
{
    InitializeComponent();
    tabControl1.Selected += TabControl1_Selected;
}
private void TabControl1_Selected(object sender, TabControlCancelEventArgs e)
{
    foreach (var ctrl in e.TabPage.Controls)
    {
        if (ctrl is RadioButton)
        {
            RadioButton tb = ctrl as RadioButton;
            tb.Checked = false;
        }
    }
}

但没有解决方案。 使用设计器将所有单选按钮添加到每个选项卡。

谁能帮忙。 提前致谢,

你可以用下面的代码,我测试过没问题

private void InitializeComponent(){
           ........
 tabControl1.Selected += TabControl1_Selected;
}



private void TabControl1_Selected(object sender, TabControlEventArgs e)
{
    foreach (var ctrl in e.TabPage.Controls)
    {
        if (ctrl is RadioButton)
        {
            RadioButton tb = ctrl as RadioButton;
            tb.Checked = false;
        }
    }
}