2012-10-28 99 views
0

我得到了一个名为AdvancePanle的类,它从Panle驱动,并且我有一个从CheckBox驱动的类调用AdvnaceCheckBox。c#添加复选框来填充奇怪的行为

我在我的表单中创建了一个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); 
     } 
    } 

和我打电话的形式的onLoad这种方法:

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

      base.OnLoad(e); 
     } 

但afther形式开了,我只能看到1复选框在Panle。 我试着玩的位置,但我alwys只看到1复选框。

我是用蠕虫的方式添加CheckBoxs吗?

(对不起,我的英语)

+1

的位置显然是错误的,所有这些复选框相隔一个像素。使用像新的点(0,5 + i *(checkbox.Height + 4)); –

回答

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); 
+0

感谢它工作:) – samy