private void CommonComponent_Closing(object sender, EventArgs e) { CommonComponents.Remove(sender as IComponent); Form componentForm = sender as Form; if (componentForm != null) { componentForm.FormClosing -= this.CommonComponent_Closing; componentForm.Close(); } (sender as IDisposable)?.Dispose(); }