前段时间由于事情比较多,很长时间没有进行学习和知识的总结,几天有空刚好补上!
今天要讲的是怎样实现控件的动态生成和删除:
1.首先,我们创建一个新的窗体,使用一个panel控件(控件的Dock属性设置为top或Fill)作为整个容器,在该panel控件再创建一个panel控件(控件属性设置为Fill),然后在该控件内部拖入两个dateTimePicker控件和一个TextBox控件和两个label控件,将它们从左到右依次排成一排,最后效果如图1所示:
图1
2.关于点击"+"按钮,动态生成控件的代码实现如下:
private void label1_Click(object sender, EventArgs e)
{
Label lb = (Label)sender;
//lb.Parent.BackColor = Color.Red;
//ControlHelper是一个控件复制类,clone是类中的复制方法
Control gb = ControlHelper.Clone(lb.Parent, true) as Control;
//Control cp_lb_First_Menu = cp_pn_MenuBlock.Controls.Find(lb_First_Menu.Name, true)[0];
Control lb2 = gb.Controls.Find(label2.Name, true)[0];
Control lb1 = gb.Controls.Find(label1.Name, true)[0];
//lb1.Visible = false;
lb2.Visible = true;
lb1.BackColor = Color.Red;
this.panel1.Controls.Add(gb);