我在一个按钮的事件里写下如下代码:
private void button2_Click(object sender, EventArgs e)
{ Label lab = new Label();
lab.Text = "ss"; panel1.Controls.Add(lab);
panel2.Controls.Add(lab);
}
执行结果panel2中显出出label,panel1不显示。
疑问:
1.为什么只有panel2中显示label,而panel1中不显示?
2.lab作为一个局部变量,函数执行完后应该析构,为什么点击按钮后 lab 依然可以显示出来?
private void button2_Click(object sender, EventArgs e)
{ Label lab = new Label();
lab.Text = "ss"; panel1.Controls.Add(lab);
panel2.Controls.Add(lab);
}
执行结果panel2中显出出label,panel1不显示。
疑问:
1.为什么只有panel2中显示label,而panel1中不显示?
2.lab作为一个局部变量,函数执行完后应该析构,为什么点击按钮后 lab 依然可以显示出来?
解决方案 »
- 新手求教,用C#如何对oracle数据库进行增删改查?
- [共享]斑马打印机中文打印助手
- =============C#算法========================
- 在winform程序中如何访问另一网站的某个页面并接收返回值
- ------------------------------求IIS几个属性------------------
- C#的enum问题,请教各位高手!
- [高手请进] 如何动态的向word文档中插入书签?
- 无法将类型“MapControlApplication9.DrawPolygon”隐式转换为“ESRI.ArcGIS.SystemUI.ITool”
- 用C#读取图片像素的颜色字节最低位
- 请教有关FTP问题,在线等候!
- 关于权限问题
- DataGridView插入时出错,出现两行空白。
panel1.Controls.Add(lab);
panel2.Controls.Add(lab);
//同一个控件,不能同时加到两个地方,应该是以最后一次为依据吧
2.
Label是引用类型,当不再被“引用”时,在GC进行垃圾回收时可能被回收
但是添加到panel中,被引用了//动态添加的控件,在页面刷新后会消失,需要重新添加一次
panel1.Controls.Add(lab);
panel2.Controls.Add(lab);
//同一个控件,不能同时加到两个地方,应该是以最后一次为依据吧
2.
Label是引用类型,当不再被“引用”时,在GC进行垃圾回收时可能被回收
但是添加到panel中,被引用了//动态添加的控件,在页面刷新后会消失,需要重新添加一次