【问题标题】:get mark position in ms charts on mouse click在鼠标单击时获取 ms 图表中的标记位置
【发布时间】:2011-12-01 12:27:55
【问题描述】:

我正在使用 MS Charts 制作图表。 现在图表有我想要获取坐标的标记点 如果用户点击标记点。

我想要图表中的交互性,以便在单击标记点时我可以检索标记点的坐标(x 轴和 y 轴)。

例如图表:-

点击橙色点或蓝色点我想获取该点的坐标,

例如第一个蓝点是 (10/11/2011, 49)

谢谢

【问题讨论】:

    标签: .net vb.net visual-studio c#-4.0 mschart


    【解决方案1】:
    <pre>void chart_MouseDown(Object sender, System.Windows.Forms.MouseEventArgs e)
    {
        HitTestResult result = chart.HitTest(e.X, e.Y);
        switch(result.ChartElementType)
        {
        case case ChartElementType.DataPointLabel:
            DateTime start = DateTime.FromOADate(result.Series.Points[result.PointIndex].XValue);
            ...
            break;
        }
    }</pre>
    

    【讨论】:

      【解决方案2】:

      从 MS 图表示例 (http://archive.msdn.microsoft.com/mschart),请参阅“图表功能 > 交互式图表 > 数据点选择”部分

      private void chart1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
      {
        // Call Hit Test Method
        HitTestResult result = Chart1.HitTest( e.X, e.Y );
      
        if( result.ChartElementType == ChartElementType.DataPoint )
        {
          // index of the clicked point in its series
          int index = result.PointIndex;
          // actual values
          Console.WriteLine(result.Series.Points[result.PointIndex].XValue);
          Console.WriteLine(result.Series.Points[result.PointIndex].YValues[0]);                                                              
        }
      }
      

      【讨论】:

      • 我只获取 x 轴的点 (1,2,3,4) 的索引。如何在点击点时获得实际的 x 轴标签(日期)。
      • 我正在使用 DataBindCrossTable 将数据绑定到图表。
      • 请参阅here 了解如何获取这些值的示例。您可能需要从 double 转换为 datetime..
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-07
      • 1970-01-01
      • 2011-09-27
      • 1970-01-01
      • 2011-03-31
      相关资源
      最近更新 更多