【问题标题】:dynamically created radio buttons not displaying动态创建的单选按钮不显示
【发布时间】:2014-02-28 18:43:28
【问题描述】:

我有一个应用程序,其中有多个选项卡。其中一个创建了几个组框,在每个组框中我需要 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();

}

【问题讨论】:

    标签: c# winforms radio-button


    【解决方案1】:

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

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

    radioButtonsLocation = new Point(0,10);
    

    或基于您希望 UI 外观的类似点。

    【讨论】:

    • 我不敢相信我忽略了这一点,但感谢您的帮助。
    • 发生在我们所有人身上 - 我已经编程 10 年了,我不得不问同事 breakcontinue 之间的区别,因为我不记得了。
    猜你喜欢
    • 2013-08-03
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 2015-02-10
    • 2017-02-12
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多