/// <summary> /// вызывается окном через MainForm.Instance при закрытии окна /// </summary> public void RemoveNonChartWindowSets(NonChartWindowSettings.WindowCode wndCode) { var curTabId = bookmarkStrip.SelectedBookmark.Id; nonChartWindows.RemoveAll(wnd => wnd.ChartTab == curTabId && wnd.Window == wndCode); // закрыть опустевшую вкладку? CheckEmptyTabOnChartClosing(curTabId, false); }
private void EnsureShowAndPlaceNonChartWindow(NonChartWindowSettings wndSets) { var wnd = MdiChildren.FirstOrDefault(c => c is IMdiNonChartWindow && ((IMdiNonChartWindow)c).WindowCode == wndSets.Window); if (wnd == null) { // создать окно if (wndSets.Window == NonChartWindowSettings.WindowCode.Account) wnd = new AccountMonitorForm { MdiParent = this }; else if (wndSets.Window == NonChartWindowSettings.WindowCode.RobotTest) { wnd = new RoboTesterForm(); ((RoboTesterForm)wnd).OnRobotResultsBoundToCharts += OnRobotResultsBoundToCharts; } else if (wndSets.Window == NonChartWindowSettings.WindowCode.Profit) wnd = new AccountTradeResultsForm { InstantCalculation = false }; else if (wndSets.Window == NonChartWindowSettings.WindowCode.Chat) wnd = new ChatForm(); else if (wndSets.Window == NonChartWindowSettings.WindowCode.Quotes) wnd = new QuoteTableForm(); else if (wndSets.Window == NonChartWindowSettings.WindowCode.Subscription) wnd = new SubscriptionForm(); else if (wndSets.Window == NonChartWindowSettings.WindowCode.WebBrowser) wnd = new BrowserForm(); else if (wndSets.Window == NonChartWindowSettings.WindowCode.RiskForm) wnd = new RiskSetupForm(); else if (wndSets.Window == NonChartWindowSettings.WindowCode.WalletForm) wnd = new WalletForm(); SetupNonMdiForm((IMdiNonChartWindow)wnd); wnd.Show(); } else { wnd.Focus(); } // установить окну положенные размеры wnd.Location = wndSets.WindowPos; wnd.Size = wndSets.WindowSize; wnd.WindowState = (FormWindowState)Enum.Parse(typeof(FormWindowState), wndSets.WindowState); ((IMdiNonChartWindow) wnd).WindowInnerTabPageIndex = wndSets.CurrentTabIndex; }
/// <summary> /// вызывается окном через MainForm.Instance /// при открытии окна (счет, профит...) для текущей вкладки добавляется запись этого окошка /// </summary> public void AddNonChartWindowSets(NonChartWindowSettings wndSets) { wndSets.ChartTab = bookmarkStrip.SelectedBookmark.Id; if (!nonChartWindows.Any(wnd => wnd.ChartTab == wndSets.ChartTab && wnd.Window == wndSets.Window)) nonChartWindows.Add(wndSets); }