namespace Pilz.UI.Dialogs; public partial class DialogBase : Form { public FlyoutBase? DialogPanel { get; private set; } private DialogBase() { Load += DialogBaseForm_Load; FormClosed += DialogBaseForm_FormClosed; } public DialogBase(FlyoutBase? dialogPanel) : this() { DialogPanel = dialogPanel; } private void DialogBaseForm_Load(object? sender, EventArgs e) { if (DialogPanel is ILoadContent iLoadContent) iLoadContent.LoadContent(); else if (DialogPanel is ILoadContentAsync iLoadContentAsync) Task.Run(iLoadContentAsync.LoadContentAsync).Wait(); DialogLoading?.Invoke(new DialogLoadingEventArgs(this)); } private void DialogBaseForm_FormClosed(object? sender, FormClosedEventArgs e) { DialogClosed?.Invoke(new DialogClosedEventArgs(this)); } }