如何在 Windows 窗体中动态添加单选按钮?

Apa*_*nha 0 c# radio-button winforms

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

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);
}
Run Code Online (Sandbox Code Playgroud)

Rom*_*mbé 5

你可以这样做:

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);
Run Code Online (Sandbox Code Playgroud)

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

要获得所选RadioButton使用的构造,如下所示:

RadioButton rbSelected = pnl.Controls
                         .OfType<RadioButton>()
                         .FirstOrDefault(r => r.Checked);
Run Code Online (Sandbox Code Playgroud)

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