I think I know why this does not work. You tried to remove the delete button from the flowlayout. But you want to remove the UserControl1 from the flowlayout.
Try something like:
private void button1_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
if (btn != null)
{
flowLayoutPanel1.Controls.RemoveByKey(btn.Parent.Name);
this.Text = (btn.Name + " removeded");
}
}
Or if the delete button is in a panel you might need "Parent.Parent.Name" - and so on. I think the RemoveByKey is not recursive!
EDIT:
And of course you need to change your event registering from:
btnAdd.button1.Click += new EventHandler(btnAdd_Click);
to
btnAdd.button1.Click += new EventHandler(button1_Click);
otherwise you will recursivly add controls to your flowpanel.