Получить событие щелчка мыши из Microsoft Chart Control нажмите на маркер данных - PullRequest
2 голосов
/ 13 марта 2012

В моем приложении есть точечная диаграмма .net 4.0. Я хотел бы захватить щелчок мыши на маркере данных. Когда пользователь нажимает на конкретную точку, я хотел бы перейти к строке в связанной таблице, откуда поступили данные.

Эта функция встроена в элемент управления диаграммой .net?

РЕДАКТИРОВАТЬ: я обнаружил, что, возможно, я на самом деле хотел, чтобы значение позиции курсора, а не потребовал от пользователя щелкнуть конкретную точку данных. Как только у меня будет местоположение курсора, это значение можно использовать для поиска строки в наборе данных, которая ближе всего к щелчку мыши. Я принял ответ на свой первоначальный вопрос ниже, так как это был правильный ответ на то, что я первоначально просил.

Решение моей «реальной» проблемы было найдено в сообщении пользователем quinn в сообщении Отображение координат оси мыши на элементе управления диаграммы

{
    var chartArea = _chart.ChartAreas[0];
    var xValue = chartArea.AxisX.PixelPositionToValue(x);
    var yValue = chartArea.AxisY.PixelPositionToValue(y);
    return new Tuple<double, double>(xValue, yValue);
}

1 Ответ

2 голосов
/ 15 марта 2012

Вы можете попробовать это:

protected void Page_Load(object sender, EventArgs e)
{
    foreach (DataPoint dp in this.Chart1.Series["YourSeriesName"].Points)
    {
        dp.PostBackValue = "#VALX,#VALY";
    }
}
protected void Chart1_Click(object sender, ImageMapEventArgs e)
{
    string[] pointData = e.PostBackValue.Split(',');
    // Add click event code here
}

Вам необходимо установить OnClick="Chart1_Click" в asp:Chart. Или, если у вас есть несколько рядов на графике, вы можете установить PostBack на серии напрямую и передавать информацию о серии.

...