6 votes

Ajouter une étiquette au panneau de manière programmatique

J'ai donc un formulaire, et je veux ajouter des panneaux avec des contrôles (étiquettes et boutons radio) lorsque le formulaire se charge.
Et je veux le faire à partir du code, bien sûr (c'est pour faire une application avec des tests, et les questions seront aléatoires).
C'est ce que j'ai fait jusqu'à présent :

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

}

Mais cela ne montre rien sur le formulaire.

8voto

Steve Points 96477

Ajouter le panneau qui vient d'être créé à la collection 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);

    }
}

1voto

Entrez la description de l'image ici

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?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X