4

だから私はフォームを持っていて、フォームがロードされたときにいくつかのコントロール(ラベルとラジオボタン)を備えたいくつかのパネルを追加したいと思います。
もちろん、コードから実行したいと思います(テストを使用してアプリケーションを作成するためのものであり、質問はランダムになります)
これは私がこれまでに行ったことです。

List<Panel>ls=new List<Panel>();

private void VizualizareTest_Load(object sender, EventArgs e)
{
    for (int i = 0; i < 4; i++)
    {
        Panel pan = new Panel();
        pan.Name = "panel" + i;
        ls.Add(pan);
        Label l = new Label();
        l.Text = "l"+i;
        pan.Controls.Add(l);
        pan.Show();
    }

}

ただし、フォームには何も表示されません。

4

2 に答える 2

7

作成したパネルをForm.Controlsコレクションに追加します

private void VizualizareTest_Load(object sender, EventArgs e)
{
    for (int i = 0; i < 4; i++)
    {
        Panel pan = new Panel();
        pan.Name = "panel" + i;
        ls.Add(pan);
        Label l = new Label();
        l.Text = "l"+i;
        pan.Location = new Point(10, i * 100);
        pan.Size = new Size(200, 90);  // just an example
        pan.Controls.Add(l);
        this.Controls.Add(pan);

    }
}
于 2013-03-13T12:56:50.323 に答える
0

ここに画像の説明を入力してください

private void button2_Click(object sender, EventArgs e)
    {
        int X = 153;
        int Y = 34;
        for (int i = 1; i < 4; i++)
        {
            Panel pnl = new Panel();
            pnl.SuspendLayout();
            pnl.Location = new Point(X, Y);
            pnl.Name = "pnl"+i;
            pnl.Size = new Size(200, 57);
            pnl.BorderStyle = BorderStyle.FixedSingle;

            Label lbl = new Label();
            lbl.Location = new Point(X - 100, Y - 17);
            lbl.Name = "lbl" + i;
            lbl.Size = new Size(75, 23);
            lbl.Text = "lable_" +i;

            pnl.Controls.Add(lbl);
            pnl.ResumeLayout(false);

            this.Controls.Add(pnl);

            Y = Y + 95;
        }
    }

why not display label2 & label3?
于 2020-06-15T11:20:13.917 に答える