2016-12-07 33 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