2016-12-07 62 views
0

我有一個winforms應用程序女巫有一個tabcontrol和在每個選項卡radiobuttons代碼工作,但有一個問題。 如果我轉到選項卡並檢查radiobutton,並在轉到另一個選項卡並檢查另一個radiobutton後,上一個按鈕保持選中狀態。 有沒有辦法,當我檢查另一個選項卡上的單選按鈕應用程序取消選中另一個選項卡上的上一個按鈕? 我使用的代碼是:單選按鈕在不同的標籤停留檢查

  if (!radioButton1.Checked && !radioButton2.Checked && !radioButton3.Checked && !radioButton4.Checked) 
      { 
       MessageBox.Show("Please select an option!", "Warning"); 
       return; 
      } 
      else if (radioButton1.Checked) 
      { 
       build build = new build("@../Images/x1.jpg", "definition", "c1"); 
       build.ShowDialog(); 
} 
      else if (radioButton2.Checked) 
      { 
       build build = new build("@../Images/x2.jpg", "definition2","c2"); 
       build.ShowDialog(); 
      } 

等等

由於提前,

回答

0

如果我正確理解你的問題,你只是想取消所有其他單選按鈕?您可以使用取消選中它們:

radioButtonX.Checked = False; 
0

查看tabControl的事件。爲tabPageX.Enter創建一個事件並清除單選按鈕(radioButtonX.Checked = false)。

真的,除非這是一個可以丟棄的測試軟件,否則我建議您研究一下像Model View Presenter這樣更復雜的架構。 (物有所值)。

+0

嗨, 感謝您的幫助。我添加了: 'private void tabControl1_TabIndexChanged(object sender,EventArgs e) { radioButton9.Checked = false; }' 但仍然沒有工作,阿米錯過了什麼? 對不起,但你可以找出我是一個菜鳥在c# – septaug

+0

沒有後顧之憂。我想我現在更好地理解你的問題了。對於每個tabIndex,您可以使用(在您的示例中)tabPage1_Leave(當您切換到另一個選項卡時被調用)取消選中單選按鈕。這樣,當您切換到它時,您沒有檢查該按鈕,因爲您在離開它之前取消了它。那有意義嗎? – cowboydan