c#为面板奇怪的行为添加复选框

时间:2012-10-28 20:06:01

标签: c# winforms

我从Panle那里得到了一个名为AdvancePanle的类,我从CheckBox那里得到了一个类调用AdvnaceCheckBox。

我在我的表单中创建了一个AdvancePanle,现在我想添加一些AdvnaceCheckBox。 所以我创建了这个简单的方法:

 private void addCheckBox()
    {
        AdvancedCheckBox checkbox;
        for (int i = 0; i < 10; i++)
        {
            checkbox = new AdvancedCheckBox();
            checkbox.Location = new Point(0, i + 5);
            checkbox.Text = "bla" + i;
            selectablePanel1.Controls.Add(checkbox);
        }
    }

我在Form onLoad中调用此方法:

 protected override void OnLoad(EventArgs e)
        {
            addCheckBox();
            selectablePanel1.AutoScroll = true;

            base.OnLoad(e);
        }

但是在表单打开后,我只能在Panle中看到1个CheckBox。 我试着玩这个位置,但我只看到一个复选框。

我是否以一种方式添加CheckBox?

(对不起我的英文)

1 个答案:

答案 0 :(得分:1)

你把它们放得太近了。 (0, 5+i)将评估为:

(0,5)
(0,6)
(0,7)
(0,8)
...

请改为尝试:

checkbox.Location = new Point(0, i*100 + 5);

或者这个:

checkbox.Location = new Point(0, i*checkbox.Height + 5);