using System.Linq; using System.Windows.Forms; namespace TweetDuck.Management{ static class FormManager{ private static FormCollection OpenForms => System.Windows.Forms.Application.OpenForms; public static T TryFind<T>() where T : Form{ return OpenForms.OfType<T>().FirstOrDefault(); } public static bool TryBringToFront<T>() where T : Form{ T form = TryFind<T>(); if (form != null){ form.BringToFront(); return true; } else{ return false; } } public static void CloseAllDialogs(){ foreach(IAppDialog dialog in OpenForms.OfType<IAppDialog>().Reverse()){ ((Form)dialog).Close(); } } public interface IAppDialog{} } }