如何以Windows格式动态添加单选按钮?

时间:2017-06-27 14:52:56

标签: c# winforms radio-button

我需要在Windows窗体和水平模式下动态添加单选按钮。 Sample

for (int i = 0; i <= r.Count; i++)
{
RadioButton rdo = new RadioButton();
rdo.Name = "id";
rdo.Text = "Name";
rdo.ForeColor = Color.Red;
rdo.Location = new Point(5, 30 );
this.Controls.Add(rdo);
}

1 个答案:

答案 0 :(得分:2)

你可以这样做:

FlowLayoutPanel pnl = new FlowLayoutPanel();
pnl.Dock = DockStyle.Fill;

for (int i = 0; i < 4; i++)
{
    pnl.Controls.Add(new RadioButton() { Text = "RadioButton" + i });
}

this.Controls.Add(pnl);

您还可以在设计器中添加FlowLayoutPanel,并将该部分保留在代码中。

要使选定的RadioButton使用这样的结构:

RadioButton rbSelected = pnl.Controls
                         .OfType<RadioButton>()
                         .FirstOrDefault(r => r.Checked);

要使用此功能,需要在调用方法中知道FlowLayoutPanel。所以要么将它添加到设计器中的Form(这就是我更喜欢的),要么将其创建为表单的实例成员并在运行时添加它(这没有任何好处)。