C#需要动态创建单选按钮并确定用户在Winform中选择的值

p_1*_*p_1 2 c# radio-button

我需要根据动态列表动态创建单选按钮.场景就像我在WinForm中显示为单选按钮的文件列表.用户单击单选按钮以选择文件并向前移动.我尝试过以下作为例子

for (int i = 0; i < 10; i++)  
{     
    ii = new RadioButton();  
    ii.Text = i.ToString();  
    ii.Location = new Point(20, tt);  
    tt = tt + 20;  
    panel1.Controls.Add(ii);                  
}
Run Code Online (Sandbox Code Playgroud)

问题是我如何检查用户选择了哪个值?

Iai*_*ard 10

一种简单的方法是使用RadioButtons CheckChanged事件设置一个变量,该变量通过使用您可以设置为文件本身的RadioButtons文本或Tag属性来指定他们选择的文件?

例如

private File f = null;

for (int i = 0; i < 10; i++)
{
    ii = new RadioButton();
    ii.Text = i.ToString();
    ii.Location = new Point(20, tt);
    ii.Tag = fileArray[i]; // Assuming you have your files in an array or similar
    ii.CheckedChanged += new System.EventHandler(this.Radio_CheckedChanged);
    tt = tt + 20;
    panel1.Controls.Add(ii);
}

private void Radio_CheckedChanged(object sender, EventArgs e)
{
    RadioButton r = (RadioButton)sender;
    f = (File)r.Tag;
}
Run Code Online (Sandbox Code Playgroud)

它当然不是最优雅的方式,但它会起作用.