2016-12-13 13 views
0

重複していないので、質問をお読みください。 私はwinformsアプリを持っています。C#魔女は3つのタブを持つtabcontrolを持っています。 各タブには4つのラジオボタンがあります。 私は、アプリを実行する場合ラジオボタンは、同じタブ内で正常に動作しますが、別のタブを選択すると、選択肢は最初のタブに残ります。 タブを変更するときにチェックされたラジオボタンをすべてクリアしようとしましたが、何らかの理由でそれが機能しません。 コードを使用することであるが、次のとおりです。異なるタブコントロールのラジオボタンが選択されたままになる

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; 
     } 
    } 
} 

EDIT: 新しいコードを。

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; 
     } 
    } 
} 

解決策はありません。 すべてのラジオボタンがデザイナーと共に各タブに追加されました。

誰でも助けてください。事前に おかげで、あなたは以下のコードを使用することができます

答えて

1

は、私はそれが働いていたことをテストした微

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; 
     } 
    } 
} 
+0

こんにちは、助けを 感謝。 あなたのコードを試しましたが、 'tabControl1.Selected + = TabControl1_Selected;' 'TabControl1_Selected 'のオーバーロードがデリゲート' TabControlEventHandler 'と一致しません\t' – septaug

+0

あなたのソリューションで自分の投稿を更新しました。 まだ 'tabControl1.Selected + = TabControl1_Selected;にエラーがあります。 – septaug

+0

私はごめんなさい、私は間違ったコードをコピーした、私は自分のコードを修正しました –

関連する問題