不同选项卡控件上的单选按钮保持选中状态
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;
}
}
}
请阅读问题,因为它不是重复的。 我有一个 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;
}
}
}