Buenas, te paso un ejemplo, en este utilizo una clase solo para el evento:El formulario principal:Código: C#public partial class Form1 : Form { public Form1() { InitializeComponent(); } //el boton abre nuevas ventanas private void button1_Click(object sender, EventArgs e) { Form2 formulario = new Form2(); formulario.Show(); } //este las cierra todas private void CerrarVentanas_Click(object sender, EventArgs e) { ClaseEvento.LanzarEvento(); } } El/los formulario/s secundario/s:Código: C#public Form2() { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { ClaseEvento.El_evento += new ClaseEvento.Delegado(ClaseEvento_El_evento); } private void Form2_FormClosing(object sender, FormClosingEventArgs e) { ClaseEvento.El_evento -= new ClaseEvento.Delegado(ClaseEvento_El_evento); } void ClaseEvento_El_evento() { this.Close(); } La clase con el evento:Código: C#class ClaseEvento { public delegate void Delegado(); public static event Delegado El_evento; public static void LanzarEvento() { if (El_evento != null) El_evento(); } } Como ves es muy sencillo, cualquier duda pregunta. Un saludo