Fiz um exemplinho rapido aqui.
Classe do Forme filho expondo um evento para ser capturado pelo form pai, o evento do click do botao dispara o evento exposto.
public partial class FormFilho : Form
{
public event EventHandler RemoveControles;
public FormFilho()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (RemoveControles != null)
RemoveControles.Invoke(sender,e);
}
}
Form pai captura o evento de click do botao do form filho e remove os controles contorme necessario.
public partial class FormPai : Form
{
private FormFilho formFilho = new FormFilho();
public FormPai()
{
InitializeComponent();
formFilho.RemoveControles += new EventHandler(formFilho_RemoveControles);
}
private void button2_Click(object sender, EventArgs e)
{
formFilho.Show();
}
void formFilho_RemoveControles(object sender, EventArgs e)
{
foreach (Control var in this.Controls)
{
if (var.Tag != null)
{
if (var.Tag.ToString().ToUpper() != "TRUE")
this.Controls.Remove(var);
}
else
{
this.Controls.Remove(var);
}
}
}
}
espero ter ajudado, Abraço.