求助!panel直接付值不显示

aoxin 2007-12-28 10:52:57


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); 则可以正常显示..

何解..
...全文
72 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinning13 2007-12-28
  • 打赏
  • 举报
回复
this.Controls.Add(p);
aoxin 2007-12-28
  • 打赏
  • 举报
回复
ouhou的说法应该是正确的..

因为在付值了之后panel1还是保持原来的状态..
ouhou 2007-12-28
  • 打赏
  • 举报
回复
我是这么认为的,
form.Controls.Add(panel1);
这是form显示panel1指针指向的内存中的数据

设置 panel1 = p 后,将panel1指针指向了p
但是form中控件显示的还是panel1以前的地址中的数据
jiatong1981 2007-12-28
  • 打赏
  • 举报
回复
和添加label同样的道理 你的panel还没有添加到当前的容器中
例如

this.Controls.Add(p);//

当然最好还是指定好位置 dock 以及别的属性才好

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧