XValue диаграммы C # пусто

#c# #charts #xvalue

#c# #Диаграммы #xvalue

Вопрос:

У меня проблема с получением значения AxisX.

Я добавляю новую форму точек dataTable :

 chart1.Series.Add(dataTable.Columns[x].Caption);
chart1.Series[dataTable.Columns[x].Caption].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
chart1.Series[dataTable.Columns[x].Caption].BorderWidth = 1;

for (int i = 0; i < dataTable.Rows.Count - 1; i  )
    chart1.Series[dataTable.Columns[x].Caption].Points
           .AddXY(dataTable.Rows[i][0], dataTable.Rows[i][x]);
  

и я использую событие mouse_move, чтобы получить значения и отобразить их в метках.

 private void chart1_MouseMove(object sender, MouseEventArgs e)
{
        Point mousePoint = new Point(e.X, e.Y);

        var pos = e.Location;
        if (prevPosition.HasValue amp;amp; pos == prevPosition.Value)
            return;
        tooltip.RemoveAll();
        prevPosition = pos;
        var results = chart1.HitTest(pos.X, pos.Y, false,
                                        ChartElementType.DataPoint);
        foreach (var result in results)
        {
            if (result.ChartElementType == ChartElementType.DataPoint)
            {
                var prop = result.Object as DataPoint;
                if (prop != null)
                {
                        tooltip.Show("X="   DateTime.FromOADate(prop.XValue)   "n Y="   prop.YValues[0], this.chart1,
                                        pos.X, pos.Y - 15);
                }
            }
        }
}
  

Странно, что prop.XValue оно пустое. У кого-нибудь есть какие-нибудь идеи?

Комментарии:

1. Оно пустое или null, или преобразование DateTime.FromOADate(prop.XValue) завершается неудачей? Можете ли вы показать prop.XValue.ToString() вместо этого?

2. ссылка Здесь приведены контрольные точки двух способов получения значения и показано, как это выглядит.

3. Хм. Странно. Можете ли вы показать мне, как устанавливается метка оси X? Существует ли более одной серии? Каков исходный тип данных для X?

4. хорошо, я беру данные из базы данных. tooltip.Show("X=" dataTable.Rows[result.PointIndex][0].ToString() "n Y=" prop.YValues[0], this.chart1, pos.X, pos.Y - 15);

5. У меня есть еще один вопрос. Знаете ли вы функцию, var results = chart1.HitTest(pos.X, pos.Y, false, ChartElementType.DataPoint); которую я хочу использовать только для рассмотрения pos.X . Pos.Y может быть любым.