MSChart Ближайшая точка данных - PullRequest
0 голосов
/ 27 октября 2011

Я использую Mschart для создания диаграмм. Я пытаюсь получить ближайшую точку данных , по которой я нажимаю на график. Проблема в том, что я не могу найти никакой связи между значениями HitTest и значениями x / y точки данных.

Скажи, я нажал на следующую точку:

Dim result As HitTestResult = Chart.HitTest(e.X, e.Y)

Теперь у меня есть значения X и Y, где я щелкнул. Как связать это со значениями точек данных?

Чего я хочу добиться, так это дважды щелкнуть по диаграмме, которая найдет ближайшую точку данных (x, y как целое число), и, зная эти значения, я смогу пересчитать другие значения в зависимости от того, где это необходимо пользователю, и двойной щелчок.

Есть намеки? P.

EDIT:

Пока это привело меня сюда:

Dim selectedDataPoint As DataPoint = Nothing
    Dim hitResult As HitTestResult = Chart.HitTest(e.X, e.Y)

    If hitResult.ChartElementType = ChartElementType.DataPoint Then
        Me.Cursor = Cursors.Cross
        selectedDataPoint = CType(hitResult.Object, DataPoint)
        MsgBox(selectedDataPoint.Name)
        MsgBox(selectedDataPoint.XValue.ToString)
        MsgBox(selectedDataPoint.YValues(0).ToString)
    End If

к сожалению, XValue выдает мне «0» в качестве вывода, где на самом деле у меня есть строковые значения, составленные из «weeknumber / yearnumber». Есть идеи, почему это так?

1 Ответ

3 голосов
/ 31 октября 2011

Ну, я нашел ответ на свой вопрос.Пожалуйста, смотрите код ниже всех, кто заинтересован:

If hitResult.ChartElementType = ChartElementType.DataPoint Then
            Me.Cursor = Cursors.Cross
            selectedDataPoint = CType(hitResult.Object, DataPoint)
            lblY.Text = selectedDataPoint.YValues(0).ToString
            lblX.Text = selectedDataPoint.AxisLabel.ToString
End if
...