c#获取多组单选按钮的值

c# Geting values of multiple group of radiobuttons


我有一个包含多个组的 C# Windows 表单应用程序,每个组都包含一些单选按钮。 我想将每个组的值插入到我的 ACCESS 数据库 table。 我正在尝试 return 从每个函数中做

private void Get_Gender(RadioButton GenderButton)
        {
            if (GenderButton.Checked)
            {
                Return GenderButton.Text;
            }
        }

private void Get_Age(RadioButton AgeButton)
        {
            if (AgeButton.Checked)
            {
                Return AgeButton.Text;
            }
        }
private void Get_Interest(RadioButton InterestButton)
        {
            if (InterestButton.Checked)
            {
                Return InterestButton.Text;
            }
        }

然后尝试从

等函数中挑选它们
String Gender = Get_Gender(I don’t know what to put here);
String Age= Get_Age(I don’t know what to put here);
String Interestr = Get_Interest(I don’t know what to put here);

然后创建连接..(这样就没问题了)

OleDbConnection con = new OleDbConnection();
Command cmd = new oleDbCommand(“INSERT into tbl (Age, Gender, Interest) “+”values(@age, @gend, @int”, con);  

查询不会有问题,

 but values of those three groups.
Getting those values (@age, @gend, @int”, con); 

让我发疯... 有没有一种简单的方法可以通过代码获取选中的 RadioButton,而不是检查每个组中的每个 Radio Button 是否被选中? 请看我的形象..了解更多。 请帮助你们,提前谢谢你们。

您可以传入一个单选按钮对象列表,循环遍历它们直到您选中第一个。主要问题是它们是不同的对象,即使它们被分组并且只能选择一个。

var radioButtons = new List<RadioButton>();
radioButton.Add(Form.rbGenderMale);
radioButton.Add(Form.rbGenderFemale);

那么你的Get_Gender方法可以像

private void Get_Gender(List<RadioButton> genderButtons)
{
    foreach (var genderButton in genderButtons)
    {
        if (genderButton.Checked)
        {
            return genderButton.Text;
        }
     }
 }

如果您正在使用动态单选按钮或不关心反射的效果,但喜欢将新的单选按钮添加到您的表单组而无需更改后面的代码的想法,请查看 How to get a checked radio button in a groupbox?