-3

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

代码是:

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

4 回答 4

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


        }

希望有帮助。

于 2012-07-25T13:26:41.417 回答
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;
}
于 2012-07-25T13:24:23.857 回答
1

这至少应该让你开始:

foreach (String s in alist) 
{            
    CheckBox cb = new CheckBox();
    cb.Text = s;
    this.Controls.Add(cb);
}
于 2012-07-25T13:19:50.427 回答
0

创建一个CheckBox 类对象并设置Name属性值并将其添加到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);

}

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

于 2012-07-25T13:23:18.460 回答