有没有办法通过一个控件来控制所有单选按钮?而不是为每个单选按钮传递一个控件 (C#)

Is there a way to control all radio buttons through one control? Instead of passing a control for each radio button (C#)

我目前正在使用 c# 在 winform 上创建在线商店。

目前我正在创建一个 'shopping basket' 相关的文本框,如果用户单击特定的单选按钮,文本框会在文本框中显示产品的描述。

我已将我的单选按钮分组到一个组框中,想知道是否有任何等效于所有单选按钮的 'SelectedIndex' 命令的东西?谢谢。

如果您希望一次 select 多个单选按钮,我建议您使用复选框而不是单选按钮。您可以将他们的所有事件分配给同一个事件并控制选中哪个复选框。

    private void checkBox_CheckedChanged(object sender, EventArgs e)
    {
        CheckBox checkBoxControl = (CheckBox) sender; // You can use this variable to see which one of the checkbox is checked.
    }

只需将所有单选按钮订阅到同一个事件即可。然后您可以根据检查的内容采取相应的行动,而不是为每个按钮使用重复的代码。
下面是一个简单的示例,它设置文本框的 Text 属性 以显示选中的内容。

形式class

public partial class Form1 : Form
{

    public Form1()
    {
        InitializeComponent();
    }

    private void radioButtons_CheckedChanged(object sender, EventArgs e)
    {
        //Do whatever you need to do here. I'm simple setting some text based off
        //the name of the checked radio button.

        System.Windows.Forms.RadioButton rb = (sender as System.Windows.Forms.RadioButton);
        textBox1.Text = $"{rb.Name} is checked!";
    }
}

在 .designer.cs 文件中

//Note that the EventHandler for each is the same.
this.radioButton3.CheckedChanged += new System.EventHandler(this.radioButtons_CheckedChanged);
this.radioButton2.CheckedChanged += new System.EventHandler(this.radioButtons_CheckedChanged);
this.radioButton1.CheckedChanged += new System.EventHandler(this.radioButtons_CheckedChanged);