Fix Options panel not reopening after closing

Set HideOnClose = true for OptionsWindow to prevent disposal when closed, and ensure embedded form is shown when window becomes visible again.

Co-authored-by: Kvarkas <3611964+Kvarkas@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2025-10-12 17:02:36 +00:00
parent 8d10980875
commit 9bcf7af467

View File

@@ -77,15 +77,22 @@ namespace mRemoteNG.UI.Window
protected override void OnFormClosing(FormClosingEventArgs e)
{
// Detach the FrmOptions form so it can be reused
if (_optionsForm != null)
{
_optionsForm.VisibleChanged -= OptionsForm_VisibleChanged;
Controls.Remove(_optionsForm);
}
// With HideOnClose = true, we don't dispose the window
// so we keep the embedded form in Controls for reuse
base.OnFormClosing(e);
}
protected override void OnVisibleChanged(EventArgs e)
{
base.OnVisibleChanged(e);
// When the window becomes visible, ensure the embedded form is also shown
if (Visible && _optionsForm != null && !_optionsForm.Visible)
{
_optionsForm.Show();
}
}
public void SetActivatedPage(string pageName)
{
_optionsForm?.SetActivatedPage(pageName);
@@ -100,6 +107,7 @@ namespace mRemoteNG.UI.Window
// OptionsWindow
//
ClientSize = new System.Drawing.Size(800, 600);
HideOnClose = true;
Name = "OptionsWindow";
Text = Language.Options;
TabText = Language.Options;