在母控件上添加你自定义的子控件很简单,即在母控件中的Controls集合中添加你的子控件即可,删除也不难,即在母控件中的Controls集合中去除你的子控件即可.
如果是子控件上有一个删除自身的按钮,点击该按钮即删除自身,该怎么办呢,实际让子控件拥有母控件的引用即可,删除时调用引用来删除自己即可
下面是示例
1.创建过程
/// <summary>
/// 生成颜色面板
/// </summary>
private void GenerateColorPanel()
{
int red = Convert.ToInt32(redTxt.Text);
int green = Convert.ToInt32(greenTxt.Text);
int blue = Convert.ToInt32(blueTxt.Text);
flowLayoutPanel1.Controls.Add(new ColorPanel(flowLayoutPanel1, red,green,blue));
}
2.ColorPanel类
public partial class ColorPanel : UserControl
{
private FlowLayoutPanel container;// 母控件引用
private int red;
private int green;
private int blue;
public ColorPanel(FlowLayoutPanel container, int red, int green, int blue)
{
InitializeComponent();
this.container = container;// 母控件引用传递
this.red = red;
this.green = green;
this.blue = blue;
}
private void delbtn_Click(object sender, EventArgs e)
{
container.Controls.Remove(this);// 点击删除按钮时调用母控件删除自身
}
...
}
例图:
就这么简单