private void Form1_Load(object sender, EventArgs e)
{
Button b = new Button();
button1 = b;
Panel p = new Panel();
Label l = new Label();
l.Text = "D";
p.Controls.Add(l);
//p.Location = new System.Drawing.Point(104, 94);
//p.Name = "panel1";
//p.Size = new System.Drawing.Size(176, 70);
//p.TabIndex = 0;
//this.Controls.Add(p);
p.BackColor = Color.Aqua;
panel1=p;
//panel1.Controls.Add(p);
MessageBox.Show(panel1.Left.ToString());
}
运行时创建了一个panel p,这个panel会添加一个label l,
为什么将运行时创建的p付值给设计时创建的panel没有显示呢...
如果是 panel1.Controls.Add(p); 则可以正常显示..何解..
{
Button b = new Button();
button1 = b;
Panel p = new Panel();
Label l = new Label();
l.Text = "D";
p.Controls.Add(l);
//p.Location = new System.Drawing.Point(104, 94);
//p.Name = "panel1";
//p.Size = new System.Drawing.Size(176, 70);
//p.TabIndex = 0;
//this.Controls.Add(p);
p.BackColor = Color.Aqua;
panel1=p;
//panel1.Controls.Add(p);
MessageBox.Show(panel1.Left.ToString());
}
运行时创建了一个panel p,这个panel会添加一个label l,
为什么将运行时创建的p付值给设计时创建的panel没有显示呢...
如果是 panel1.Controls.Add(p); 则可以正常显示..何解..
例如this.Controls.Add(p);//当然最好还是指定好位置 dock 以及别的属性才好
form.Controls.Add(panel1);
这是form显示panel1指针指向的内存中的数据
设置 panel1 = p 后,将panel1指针指向了p
但是form中控件显示的还是panel1以前的地址中的数据