添加新复选框

时间:2012-07-25 13:14:37

标签: c#

我正在尝试为alist中的每个String添加一个新复选框。

代码是:

void MainFormLoad(object sender, EventArgs e)
        {
            ArrayList alist = new ArrayList();
            alist.Add("First");
            alist.Add("Second");

            foreach (String s in alist) {

// add new checkbox with different name for each string in alist

            }

        }

请帮助

4 个答案:

答案 0 :(得分:2)

 ArrayList alist = new ArrayList();
        alist.Add("First");
        alist.Add("Second");

        int loopCount=1;
        foreach (String s in alist)
        {

            // add new checkbox with different name for each string in alist
            CheckBox c = new CheckBox();
            c.Name = s;
            c.Text = s;
            c.Parent = this;
            c.Visible = true;

            //position the checkbox
            c.Top = loopCount*c.Height;

            this.Controls.Add(c);
            loopCount++;


        }
希望有所帮助。

答案 1 :(得分:1)

这至少应该让你开始:

foreach (String s in alist) 
{            
    CheckBox cb = new CheckBox();
    cb.Text = s;
    this.Controls.Add(cb);
}

答案 2 :(得分:1)

您可以使用表单的Controls集合动态添加控件。 i用于确保复选框的位置不会过度重叠。

int i = 0;
foreach (String s in alist) 
{
    CheckBox myCheckBox = new CheckBox();
    myCheckBox.Name = s;
    myCheckBox.Text = s;
    myCheckBox.Size = new Size(74, 13);
    myCheckBox.Location = new Point(138, i);
    this.Controls.Add(myCheckBox);
    i = i + 18;
}

答案 3 :(得分:0)

创建CheckBox类的对象并设置Name属性值并将其添加到任何Container元素的Controls集合中。你需要设置每个新创建的复选框的位置不同,否则它将全部位于一个位置(一个位于另一个顶部),你将无法看到所有。

int top = 10;
foreach (String s in alist)
{
    top = top + 10;
    var chk = new CheckBox();
    chk.Name = s;
    chk.Top=top;  
    groupBox1.Controls.Add(chk);

}

这里我将新创建的复选框添加到名为groupBox1的GroupBox控件中。