有没有办法通过一个控件来控制所有单选按钮?而不是为每个单选按钮传递一个控件 (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);
我目前正在使用 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);