private void LoadSubWindowsLayout(Stream stream) { try { if (stream != null) { // 取り込んだウィンドウは一旦デタッチして閉じる fWindowCapture.CloseAll(); foreach (var f in SubForms) { f.Show(MainDockPanel, DockState.Document); f.DockPanel = null; } MainDockPanel.LoadFromXml(stream, new DeserializeDockContent(GetDockContentFromPersistString)); //一度全ウィンドウを読み込むことでフォームを初期化する foreach (var x in MainDockPanel.Contents) { if (x.DockHandler.DockState == DockState.Hidden) { x.DockHandler.Show(MainDockPanel); x.DockHandler.Hide(); } else { x.DockHandler.Activate(); } } // checkme: このコードの存在意義 /*/ * if ( MainDockPanel.Contents.Count > 0 ) * MainDockPanel.Contents.First().DockHandler.Activate(); * //*/ fWindowCapture.AttachAll(); } else { foreach (var f in SubForms) { f.Show(MainDockPanel); } foreach (var x in MainDockPanel.Contents) { x.DockHandler.Hide(); } } } catch (Exception ex) { Utility.ErrorReporter.SendErrorReport(ex, "サブウィンドウ レイアウトの復元に失敗しました。"); } }
private void LoadSubWindowsLayout(Stream stream) { try { if (stream != null) { // 取り込んだウィンドウは一旦デタッチして閉じる fWindowCapture.CloseAll(); foreach (var f in SubForms) { f.Show(MainDockPanel, DockState.Document); f.DockPanel = null; } MainDockPanel.LoadFromXml(stream, new DeserializeDockContent(GetDockContentFromPersistString)); fWindowCapture.AttachAll(); } else { foreach (var f in SubForms) { f.Show(MainDockPanel); } foreach (var x in MainDockPanel.Contents) { x.DockHandler.Hide(); } } } catch (Exception ex) { Utility.ErrorReporter.SendErrorReport(ex, "サブウィンドウ レイアウトの復元に失敗しました。"); } }