使用WinForms;有没有更好的方法来查找组中选中的RadioButton?在我看来,以下代码不是必需的。当您检查另一个RadioButton时,它将知道要取消选中哪个按钮。因此,它应该知道已选中了哪个按钮。我如何在不执行大量if语句(或开关)的情况下获取该信息。
RadioButton rb = null; if (m_RadioButton1.Checked == true) { rb = m_RadioButton1; } else if (m_RadioButton2.Checked == true) { rb = m_RadioButton2; } else if (m_RadioButton3.Checked == true) { rb = m_RadioButton3; }
您可以使用LINQ:
var checkedButton = container.Controls.OfType<RadioButton>() .FirstOrDefault(r => r.Checked);
请注意,这要求所有单选按钮都直接位于同一容器中(例如,面板或窗体),并且容器中只有一组。如果不是这种情况,则可以List<RadioButton>在构造函数中为每个组创建,然后编写list.FirstOrDefault(r => r.Checked)。
List<RadioButton>
list.FirstOrDefault(r => r.Checked)