private void IndicatorAdded(object sender, CandleChartControl.IndiEventArgs ie) { if (ie.indi.CreateOwnPanel == false || ie.indi.ownPane == null) { return; } // надо вкладку создать var tp = new TabPage { Parent = panesTabCtrl, Text = ie.indi.UniqueName, Tag = ie.indi }; tp.Show(); panesTabCtrl.SelectedTab = tp; }
void IndicatorDeleted(object sender, CandleChartControl.IndiEventArgs ie) { // надо вкладку удалить if (ie.indi.ownPane == null) { return; } foreach (TabPage page in panesTabCtrl.TabPages) { if (page.Text != ie.indi.UniqueName) { continue; } panesTabCtrl.TabPages.Remove(page); ie.indi.IsPanelVisible = false; break; } }
void IndicatorEdited(object sender, CandleChartControl.IndiEventArgs ie) { // проверяем надо ли название панели поменять если изменили название индикатора var oldName = (string)sender; // имя индикатора не поменялось, проверяем надо ли удалять панель или добавить if (oldName != ie.indi.UniqueName) { foreach (TabPage page in panesTabCtrl.TabPages) { if (page.Text != oldName) { continue; } page.Text = ie.indi.UniqueName; page.Tag = ie.indi; break; } } // проверяем надо ли вкладку изменить if (!ie.indi.CreateOwnPanel && ie.indi.ownPane != null) { // возможно надо табу удалить, проверяем есть ли вообще она foreach (TabPage page in panesTabCtrl.TabPages) { if (page.Text != ie.indi.UniqueName) { continue; } panesTabCtrl.TabPages.Remove(page); ie.indi.IsPanelVisible = false; return; } } // проверяем случай когда включили свою панель на индикаторе if (ie.indi.CreateOwnPanel && ie.indi.ownPane != null) { // проверяем может такая таба уже открыта foreach (TabPage page in panesTabCtrl.TabPages) { if (page.Text != ie.indi.UniqueName) { continue; } // нашли табу - ничего не делаем page.Tag = ie.indi; return; } // табы нет, создаем ее chart.chart.Panes.Add(ie.indi.ownPane, ie.indi.ownPane.PercentHeight); var tp = new TabPage { Parent = panesTabCtrl, Text = ie.indi.UniqueName, Tag = ie.indi }; tp.Show(); panesTabCtrl.SelectedTab = tp; ie.indi.IsPanelVisible = true; foreach (var series in ie.indi.SeriesResult) { if (!ie.indi.ownPane.Series.ContainsSeries(series)) { ie.indi.ownPane.Series.Add(series); } } } }