-3

リスト内の文字列ごとに新しいチェックボックスを追加しようとしています。

コードは次のとおりです。

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

これで、少なくとも始めることができます。

foreach (String s in alist) 
{            
    CheckBox cb = new CheckBox();
    cb.Text = s;
    this.Controls.Add(cb);
}
于 2012-07-25T13:19:50.427 に答える
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 に答える
0

CheckBox クラスのオブジェクトを作成し、プロパティ値を設定して、任意のContainer要素のコレクションにName追加します。Controls新しく作成された各チェックボックスの位置を異なるように設定する必要があります。そうしないと、すべてが1つの場所に(上下に)配置され、すべてを表示できなくなります。

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

}

ここでは、新しく作成したチェックボックスをGroupBoxgroupBox1という名前のコントロールに追加しています。

于 2012-07-25T13:23:18.460 に答える