【问题标题】:Get Mouse click event from Microsoft Chart Control click on data marker从 Microsoft Chart Control 获取鼠标单击事件单击数据标记
【发布时间】:2012-03-13 19:48:46
【问题描述】:

我的应用中有一个 .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);
}

【问题讨论】:

    标签: c# .net mschart


    【解决方案1】:

    你可以试试这个:

    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
    }
    

    您需要在asp:Chart 中设置OnClick="Chart1_Click"。 或者,如果您的图表上有多个系列,您可以直接在系列上设置 PostBack 并传递有关系列的信息。

    【讨论】:

    • 我相信 e.PostBackValue.Split 应该使用“,”分隔符而不是分号“;”进行拆分分隔符。可能只是一个错字,但为任何偶然发现这个问题的人指出。
    猜你喜欢
    • 1970-01-01
    • 2017-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    相关资源
    最近更新 更多