C# 动态创建的单选按钮不显示

C# 动态创建的单选按钮不显示,c#,winforms,radio-button,C#,Winforms,Radio Button,我有一个应用程序,其中有几个选项卡。其中一个创建了几个分组框,在每个分组框中我需要10个单选按钮,范围从1到10。我的问题是我无法让单选按钮显示并正常工作。当我创建它们时,如果我将它们添加到当前选项卡控件,所有单选按钮都将显示,但winform将它们视为一组单选按钮 我需要每个分组框中的单选按钮成为一组。如果我将按钮添加到groupbox,单选按钮将不会显示。我已经研究了将单选按钮添加到groupbox的顺序,调用单选按钮show()方法,将groupbox添加到tabs控件,并调用groupb

我有一个应用程序,其中有几个选项卡。其中一个创建了几个分组框,在每个分组框中我需要10个单选按钮,范围从1到10。我的问题是我无法让单选按钮显示并正常工作。当我创建它们时,如果我将它们添加到当前选项卡控件,所有单选按钮都将显示,但winform将它们视为一组单选按钮

我需要每个分组框中的单选按钮成为一组。如果我将按钮添加到groupbox,单选按钮将不会显示。我已经研究了将单选按钮添加到groupbox的顺序,调用单选按钮
show()
方法,将groupbox添加到tabs控件,并调用groupbox的
show()
方法,但是无论我在什么配置中尝试这些,我似乎都无法显示单选按钮。我还尝试更改单选按钮的
childIndex
,但也没有成功

有些人可能建议只使用下拉菜单或
upDownNumaric
,但实际上我的
upDownNumaric
功能正常,但客户希望将其更改为一组单选按钮。我目前拥有的代码:

groupBoxLocation.Y += 45;
GroupBox newGroupBox = new GroupBox();

newGroupBox.Location = groupBoxLocation;
newGroupBox.Text = reader["Description"].ToString().Trim();
newGroupBox.Size = new Size(425, 40);
newGroupBox.Name = ("PS_L_" + newGroupBox.Text).Replace(" ", "").Trim();


RadioButton rateValue;


radioButtonsLocation = new Point(newGroupBox.Location.X - 30, newGroupBox.Location.Y + 15);

tabControl1.TabPages[3].Controls.Add(newGroupBox);

newGroupBox.Show();
for (int i = 0; i < 10; ++i)
{
    rateValue = new RadioButton();
    radioButtonsLocation = new Point(radioButtonsLocation.X + 41, radioButtonsLocation.Y);

    rateValue.Location = radioButtonsLocation;
    rateValue.Text = (i + 1).ToString().Trim();
    rateValue.Width = 40;
    rateValue.Name = "PI_V_" + newGroupBox.Text.Replace(" ", "") + "_" + i;

    newGroupBox.Controls.Add(rateValue);
    newGroupBox.Controls[rateValue.Name].Show();

}
groupBoxLocation.Y+=45;
GroupBox newGroupBox=新的GroupBox();
newGroupBox.Location=groupBoxLocation;
newGroupBox.Text=reader[“Description”].ToString().Trim();
newGroupBox.Size=新的大小(425,40);
newGroupBox.Name=(“PS_L_”+newGroupBox.Text).Replace(“,”).Trim();
单选按钮比率值;
radioButtonsLocation=新点(newGroupBox.Location.X-30,newGroupBox.Location.Y+15);
tabControl1.TabPages[3].Controls.Add(newGroupBox);
newGroupBox.Show();
对于(int i=0;i<10;++i)
{
rateValue=新单选按钮();
radioButtonsLocation=新点(radioButtonsLocation.X+41,radioButtonsLocation.Y);
rateValue.Location=无线电按钮位置;
rateValue.Text=(i+1).ToString().Trim();
比率值。宽度=40;
rateValue.Name=“PI_V_”+newGroupBox.Text.Replace(“,”)+“_”+i;
newGroupBox.Controls.Add(rateValue);
控件[rateValue.Name].Show();
}

问题在于radioButtonsLocation的初始化。这些位置相对于其父容器,而不是相对于根容器,因此请尝试更改

radioButtonsLocation = new Point(newGroupBox.Location.X - 30, newGroupBox.Location.Y + 15);


或者基于您希望用户界面的外观来考虑类似的问题。

我不敢相信我忽略了这一点,但感谢您的帮助。我们所有人都遇到了这种情况-我已经编程10年了,我不得不问一位同事
中断
继续
之间的区别,因为我记不起来了。
radioButtonsLocation = new Point(0,10);