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

时间:2014-02-04 16:53:37

标签: c# winforms radio-button

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

我需要每个组框中的单选按钮是一个集合。如果我将按钮添加到组框,则不会显示单选按钮。我已经解决了将单选按钮添加到组框的顺序,调用单选按钮show()方法,将组框添加到选项卡控件,并调用组框的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();

}

1 个答案:

答案 0 :(得分:3)

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

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

radioButtonsLocation = new Point(0,10);

或基于您希望用户界面看起来如何的类似点。