如下图所示,我使用单选按钮来收集用户的反馈。我是否需要为所有这8个按钮提供唯一的名称来获取数据?或者是否还有其他方便的方法来声明4个按钮并在每个节中重用它们?
请查看此图像以更好地理解:

发布于 2020-12-01 09:59:09
如果可以创建一个方法将合格的单选按钮放在一个序列中,则不需要名称。您可以使用LINQ获取所选的内容:
private IEnumerable<RadioButton> RadioButtons => ...
private RadioButton SelectedRadioButton => this.RadioButtons
.Where(radioButton => radioButton.Checked)
.FirstOrDefault();一种方法是在一个控件中获取所有单选按钮(例如,GroupBox)。
IEnumerable<RadioButton> GetRadioButtons(Control control)
{
return control.Controls.OfType<RadioButton>();
}如果所有RadioButtons都具有相同的事件处理程序,则可以使用参数发送方:
private void OnRadioButtonCheckedChange(object sender, ...)
{
RadioButton radioButton = (RadioButton)sender;
if (radioButton.Checked)
this.RadioButtonSelected(radioButton);
else
this.RadioButtonDeselected(radioButton);
}https://stackoverflow.com/questions/65074911
复制相似问题