我正在尝试为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
}
}
请帮助
答案 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
控件中。