如何动创建、态删除控件?
请问各位高手,我如何在运行时动态的创建和删除控件?
比如有button1,button2 当点击button1时在form上增加label1,
当点击button2时删除label1
问题点数:10、回复次数:6Top
1 楼yarshray(saga jion(心飘情落))回复于 2002-11-17 13:10:47 得分 0
label1.Visiable=false;Top
2 楼zanbuhui(我不会)回复于 2002-11-17 13:22:24 得分 0
不是让他不可见,而是不他在form上彻底删掉Top
3 楼TheAres(班门斧)回复于 2002-11-17 13:32:06 得分 2
加入如下代码:
this.Controls.Remove(this.label1);Top
4 楼killertang(糖汤一狼)回复于 2002-11-17 13:40:58 得分 3
//添加 一个BUTTON
Button Bt =new Button();
//设置属性
Bt.Text="Add Control";
Bt.BackColor=Color.Red;
..........
//绑定事件过程
..........
this.controls.add(this.Bt);
//删除同上
//结束事件绑定
//从窗体中删除
this.Controls.Remove(this.Bt);
Top
5 楼sdsxc(c#,我为卿狂)回复于 2002-11-17 14:05:50 得分 5
因为在运行时动态的创建和删除控件,所以是局部变量,this.label1或this.Bt程序是不认得,应为:
添加:
private void button1_Click(object sender, System.EventArgs e)
{
Label lbl=new Label();
lbl.Name="lbl";//删除时用
lbl.Left=200;
lbl.Top=19;
lbl.Height=200;
lbl.Width=100;
lbl.Text="dlkjflkdfj";
lbl.BackColor=Color.Red;
this.Controls.Add(lbl);
lbl.Show();
}
删除:
private void button8_Click(object sender, System.EventArgs e)
{
foreach(Control ct in this.Controls)
{
if (ct.Name=="lbl" && ct.GetType().ToString()=="System.Windows.Forms.Label")
{
this.Controls.Remove(ct);
}
}
}Top
6 楼snewxf(心疤)回复于 2002-11-17 17:39:18 得分 0
没错!楼上兄弟说得对!Top




