我有一个Windows Forms应用程序,其中有许多RadioButtons。这些RadioButton放置在FlowLayoutPanel中,该FlowLayoutPanel自动为我安排它们。直接添加到FlowLayoutPanel的所有RadioButton进行分组,这意味着我只能选择其中之一。但是,其中一些RadioButton与TextBox配对使用,因此我可以在其中提供一些参数。但是要正确安排所有这些,我向FlowLayoutPanel添加了一个Panel控件,这样我就可以控制RadioButton和TextBox彼此之间的相对对齐。

这些单选按钮现在具有各自的面板作为父控件,因此不再与其他单选按钮一起包含在单选组中。我读到System.Web.UI命名空间中的RadioButtons具有GroupName属性,但是不幸的是,它们的System.Windows.Forms对应项缺少此属性。我还有其他方法可以对这些单选按钮进行分组吗,我是否必须自己处理onClick事件?

谢谢,
杰瑞

最佳答案

恐怕您将不得不手动处理此问题……实际上还不错,您可以仅将所有RadioButton存储在列表中,并对所有这些事件使用单个事件处理程序:

private List<RadioButton> _radioButtonGroup = new List<RadioButton>();
private void radioButton_CheckedChanged(object sender, EventArgs e)
{
    RadioButton rb = (RadioButton)sender;
    if (rb.Checked)
    {
        foreach(RadioButton other in _radioButtonGroup)
        {
            if (other == rb)
            {
                continue;
            }
            other.Checked = false;
        }
    }
}

关于c# - 使用C#中的不同父控件将Windows Forms单选按钮分组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4627314/

10-11 08:28