选择多个RadioButtons

时间:2015-08-12 03:31:22

标签: c# winforms

我在C#中创建一个Windows窗体,用户必须选择多个RadioButton,但只能选择1个RadioButton

我提供了一个图像来说明我的问题

enter image description here

这是我的代码:

if (radioButton3.Checked == true)
{
     if (radioButton4.Checked == true)
     {
          NpgsqlCommand cmd10 = new NpgsqlCommand("INSERT INTO visual_acuity (eid, corrected, is_left_eye, value) VALUES (@eid, @corrected, @is_left_eye, @value)", conn);
          cmd10.Parameters.AddWithValue("@eid", textBox1.Text);
          cmd10.Parameters.AddWithValue("@value", textBox17.Text);
          cmd10.Parameters.AddWithValue("@is_left_eye", radioButton2.Checked);
          cmd10.Parameters.AddWithValue("@corrected", radioButton4.Checked);
          cmd10.ExecuteNonQuery();
     }
     if (radioButton5.Checked == true)
     {
          NpgsqlCommand cmd11 = new NpgsqlCommand("INSERT INTO visual_acuity (eid, corrected, is_left_eye, value) VALUES (@eid, @corrected, @is_left_eye, @value)", conn);
          cmd11.Parameters.AddWithValue("@eid", textBox1.Text);
          cmd11.Parameters.AddWithValue("@value", textBox17.Text);
          cmd11.Parameters.AddWithValue("@is_left_eye", radioButton2.Checked);
          cmd11.Parameters.AddWithValue("@corrected", radioButton4.Checked);
          cmd11.ExecuteNonQuery();
     }
}
else
{
     if (radioButton4.Checked == true)
     {
          NpgsqlCommand cmd10 = new NpgsqlCommand("INSERT INTO visual_acuity (eid, corrected, is_left_eye, value) VALUES (@eid, @corrected, @is_left_eye, @value)", conn);
          cmd10.Parameters.AddWithValue("@eid", textBox1.Text);
          cmd10.Parameters.AddWithValue("@value", textBox17.Text);
          cmd10.Parameters.AddWithValue("@is_left_eye", radioButton2.Checked);
          cmd10.Parameters.AddWithValue("@corrected", radioButton4.Checked);
          cmd10.ExecuteNonQuery();
     }
     if (radioButton5.Checked == true)
     {
          NpgsqlCommand cmd11 = new NpgsqlCommand("INSERT INTO visual_acuity (eid, corrected, is_left_eye, value) VALUES (@eid, @corrected, @is_left_eye, @value)", conn);
          cmd11.Parameters.AddWithValue("@eid", textBox1.Text);
          cmd11.Parameters.AddWithValue("@value", textBox17.Text);
          cmd11.Parameters.AddWithValue("@is_left_eye", radioButton2.Checked);
          cmd11.Parameters.AddWithValue("@corrected", radioButton4.Checked);
          cmd11.ExecuteNonQuery();
     }
}

如果您有任何建议,请随时发表评论。这将是一个很大的帮助。谢谢!

3 个答案:

答案 0 :(得分:6)

单选按钮的名称来自汽车收音机上的电台按钮,一次只能选择一个电台。这就是单选按钮控件的目的。

只能选择组中的一个按钮。还要考虑有经验的用户立即知道只能通过查看它们来选择一个选项,因为它们在应用程序中的行为一致。因此,改变单选按钮的工作方式会让用户感到困惑。

如果您希望一次选择多个,则不需要单选按钮。改为使用复选框。

答案 1 :(得分:3)

您必须将RadioButtons放入Panels或GroupBoxes。

然后您可以在每个这样的组中单独选择它们。

答案 2 :(得分:1)

如果用户必须只选择其中一个(左和右)使用复选框来修正版本