从Microsoft Chart Control获取鼠标单击事件单击数据标记

时间:2012-03-13 19:48:47

标签: c# .net mschart

我的应用中有一个.net 4.0点图表。我想捕获鼠标点击数据标记。当用户点击某个特定点时,我想转到绑定表中数据来源的行。

此功能是否内置于.net图表控件?

编辑:我发现我可能实际上想要光标位置值而不是要求用户点击特定数据点。获得光标位置后,该值可用于查找数据集中最接近鼠标单击的行。我接受了下面我原来问题的答案,因为这是我最初要求的正确答案。

我的'真实'问题的解决方案是在帖子中的用户quinn的帖子中找到的 Showing Mouse Axis Coordinates on Chart Control

{
    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 个答案:

答案 0 :(得分:2)

你可以试试这个:

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并传递有关该系列的信息。