Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以编程方式将标签添加到面板_C#_Panel - Fatal编程技术网

C# 以编程方式将标签添加到面板

C# 以编程方式将标签添加到面板,c#,panel,C#,Panel,因此,我有一个表单,我想在加载表单时添加一些带有控件(标签和单选按钮)的面板。 当然,我想从代码开始(这是为了制作一个带有测试的应用程序,并且问题是随机的) 这就是我到目前为止所做的: List<Panel>ls=new List<Panel>(); private void VizualizareTest_Load(object sender, EventArgs e) { for (int i = 0; i < 4; i++) {

因此,我有一个表单,我想在加载表单时添加一些带有控件(标签和单选按钮)的面板。
当然,我想从代码开始(这是为了制作一个带有测试的应用程序,并且问题是随机的)
这就是我到目前为止所做的:

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

}
Listls=newlist();
私有void vizalizaretest_加载(对象发送方,事件参数e)
{
对于(int i=0;i<4;i++)
{
面板盘=新面板();
pan.Name=“panel”+i;
ls.添加(pan);
标签l=新标签();
l、 Text=“l”+i;
对照组。添加(l);
pan.Show();
}
}

但它不会在表单上显示任何内容。

将刚刚创建的面板添加到表单中。控件集合

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

    }
}
private void vizalizaretest_加载(对象发送方,事件参数e)
{
对于(int i=0;i<4;i++)
{
面板盘=新面板();
pan.Name=“panel”+i;
ls.添加(pan);
标签l=新标签();
l、 Text=“l”+i;
平移位置=新点(10,i*100);
pan.Size=new Size(200,90);//只是一个例子
对照组。添加(l);
this.Controls.Add(pan);
}
}

private void按钮2\u单击(对象发送者,事件参数e)
{
int X=153;
int Y=34;
对于(int i=1;i<4;i++)
{
面板pnl=新面板();
pnl.SuspendLayout();
pnl.位置=新点(X,Y);
pnl.Name=“pnl”+i;
pnl.尺寸=新尺寸(200,57);
pnl.BorderStyle=BorderStyle.FixedSingle;
标签lbl=新标签();
lbl位置=新点(X-100,Y-17);
lbl.Name=“lbl”+i;
lbl.尺寸=新尺寸(75,23);
lbl.Text=“标签”+i;
pnl.控件.添加(lbl);
pnl.ResumeLayout(假);
this.Controls.Add(pnl);
Y=Y+95;
}
}
为什么不显示label2和label3?

您还需要设置面板的位置和大小,并检查控件上是否没有诸如xtrascrollbar之类的控件。然后你需要调用控件。添加你正在显示的控件。如果是sxtraScroll1,则需要将动态标签添加到该标签中。尺寸和位置提示也适用于标签。(正如您所看到的,这可能会在短时间内变得非常复杂)对不起,我将此问题与DevExpress问题混为一谈。它可以是任何控制。如果显示例如PanelControl,则需要在其上添加动态控件。否则可能无法显示。但既然它已经起作用了,一切似乎都很好。
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?