public void Loaded() { Data.UpdateProductTree(tvNavigator, DisplayIndex); UpdateChart(); InitTrendsList(); fileSystemWatcher1.Path = Data.HistoryFolder; _minutes = Data.Session.ReadInteger("TrendShowed" + DisplayIndex, "TimeRange", 20); tsbNextTime.Enabled = false; foreach (var dropitem in tsbTimeSelect.DropDownItems.Cast <ToolStripDropDownItem>() .Where(dropitem => dropitem.Tag != null && (string)dropitem.Tag == _minutes.ToString("0"))) { tsbTimeSelect.Text = dropitem.Text; break; } _offset = Data.Session.ReadInteger("TrendShowed" + DisplayIndex, "TimeOffset", 0); if (_offset > 0) { tsbNextTime.Enabled = true; } _cursorPosition = Data.Session.ReadDateTime("TrendShowed" + DisplayIndex, "TimePosition", DateTime.MinValue); if (_cursorPosition == DateTime.MinValue) { ClearDateCursor(); } else { tslCursorPositionDate.Text = @"Позиция курсора: " + CursorPosition.ToString("dd.MM.yy HH:mm.ss.fff"); } _zoomminutes = Data.Session.ReadInteger("TrendShowed" + DisplayIndex, "TimeZoom", _minutes); if (_zoomminutes < _minutes && _cursorPosition > DateTime.MinValue) { tsbNoZoom.Enabled = true; var dateHighRange = CursorPosition.AddMinutes(_zoomminutes); var dateLowRange = CursorPosition.AddMinutes(-_zoomminutes); UpdateChart(dateLowRange, dateHighRange); FillCursorsData(CursorPosition); tsbZoomIn.Enabled = true; tsbZoomOut.Enabled = true; } else { UpdateChart(); } }
private void tsbZoomIn_Click(object sender, EventArgs e) { var dateLowRange = DateTime.FromOADate(chartTrends.ChartAreas[0].AxisX.Minimum); var dateHighRange = DateTime.FromOADate(chartTrends.ChartAreas[0].AxisX.Maximum); if (CursorPosition <= dateLowRange || CursorPosition >= dateHighRange) { return; } if (Zoomminutes <= 1) { return; } Zoomminutes -= Zoomminutes / 2; dateHighRange = CursorPosition.AddMinutes(Zoomminutes); dateLowRange = CursorPosition.AddMinutes(-Zoomminutes); UpdateChart(dateLowRange, dateHighRange); tsbNoZoom.Enabled = true; }