Exemple #1
0
        private void chartData_GetToolTipText(object sender, System.Windows.Forms.DataVisualization.Charting.ToolTipEventArgs e)
        {
            if (e.HitTestResult.ChartArea == chartData.ChartAreas[ChartAreaIndex])
            {
                double position = GetAxisXPositionFromMouse(e.X);
                int    index    = (int)(position - 0.5);

                if (index < 0)
                {
                    index = 0;
                }

                var stockSeries = chartData.Series[StockSeriesIndex];

                if (position < 0 || position >= stockSeries.Points.Count)
                {
                    e.Text = string.Empty;
                }
                else
                {
                    var bar = _currentShownData.DataOrderedByTime[index];

                    e.Text = string.Format(
                        "Position:{6}\nTime:{0:yyyy-MM-dd}\nOpen:{1:0.000}\nClose:{2:0.000}\nHighest:{3:0.000}\nLowest:{4:0.000}\nVolume:{5}",
                        bar.Time,
                        bar.OpenPrice,
                        bar.ClosePrice,
                        bar.HighestPrice,
                        bar.LowestPrice,
                        bar.Volume,
                        position);
                }
            }
        }
Exemple #2
0
 private void chart1_GetToolTipText(object sender, System.Windows.Forms.DataVisualization.Charting.ToolTipEventArgs e)
 {
     // Check selected chart element and set tooltip text for it
     switch (e.HitTestResult.ChartElementType)
     {
     case System.Windows.Forms.DataVisualization.Charting.ChartElementType.DataPoint:
         var dataPoint = e.HitTestResult.Series.Points[e.HitTestResult.PointIndex];
         e.Text = string.Format("X:\t{0}\nY:\t{1}", dataPoint.XValue, dataPoint.YValues[0]);
         break;
     }
 }
        private void ViewCoordinates(object sender, System.Windows.Forms.DataVisualization.Charting.ToolTipEventArgs e)
        {
            var area = chart1.ChartAreas[0];

            var areaPosition = area.Position;

            var areaRect = new RectangleF(areaPosition.X * chart1.Width / 100, areaPosition.Y * chart1.Height / 100,
                                          areaPosition.Width * chart1.Width / 100, areaPosition.Height * chart1.Height / 100);
            var innerPlot = area.InnerPlotPosition;

            double x = area.AxisX.Minimum +
                       (area.AxisX.Maximum - area.AxisX.Minimum) *
                       (e.X - areaRect.Left - innerPlot.X * areaRect.Width / 100) /
                       (innerPlot.Width * areaRect.Width / 100);
            double y = area.AxisY.Maximum -
                       (area.AxisY.Maximum - area.AxisY.Minimum) *
                       (e.Y - areaRect.Top - innerPlot.Y * areaRect.Height / 100) /
                       (innerPlot.Height * areaRect.Height / 100);

            Y_coordinateBox.Text = Math.Round(y, 2).ToString();
            X_coordinateBox.Text = Math.Round(x, 2).ToString();
        }