日期:2014-05-20  浏览次数:21596 次

Chart如何获得当前点的X和Y的value?
我想在CHart内加个鼠标右键事件,在点击Chart之后则在下面的Datagrideview中显示X\Y值及其相关的详细信息,要怎么样实现?
------最佳解决方案--------------------
你先加上吧
------其他解决方案--------------------

[b]我也不会 帮顶 !!!
大家帮忙下吧 不要太看重分数!!![/b]
------其他解决方案--------------------
怎么没人用过啊?
------其他解决方案--------------------
会者不难吧,分不够我可以再加啊。。。
------其他解决方案--------------------

    Private Sub Chart1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Chart1.MouseDown
        If e.Button <> Windows.Forms.MouseButtons.Right Then Exit Sub
        Dim result As HitTestResult = Chart1.HitTest(e.X, e.Y)
        If result.ChartElementType <> ChartElementType.DataPoint Then
            Exit Sub
        End If
        Debug.Print(result.Series.Points(result.PointIndex).XValue.ToString & "," & result.Series.Points(result.PointIndex).YValues(0).ToString)
Exit Sub

[size=6]你把最后那个Debug.Print替换了就行了[/size]
------其他解决方案--------------------
开玩笑的,分多了要是能换美女还差不多。
------其他解决方案--------------------
呵呵,多谢了。分一定加,我先试一下哈。
------其他解决方案--------------------
3L高手,已经解决了,结贴给分。C#的代码如下。


        private void chart1_MouseClick(object sender, MouseEventArgs e)
        {            
            if (e.Button == System.Windows.Forms.MouseButtons.Left)
            {
                MessageBox.Show(chart1.Series[0].ToolTip.ToCharArray()[0].ToString());
            }
            if (e.Button == System.Windows.Forms.MouseButtons.Right)
            {
                System.Windows.Forms.DataVisualization.Charting.HitTestResult Result = new System.Windows.Forms.DataVisualization.Charting.HitTestResult();
                Result = chart1.HitTest(e.X, e.Y);
                MessageBox.Show("'X轴:'" + Result.Series.Points[Result.PointIndex].XValue.ToString() + "'Y轴:'" + Result.Series.Points[Result.PointIndex].XValue.ToString());
            }