首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

Chart怎么获得当前点的X和Y的value

2012-12-23 
Chart如何获得当前点的X和Y的value?我想在CHart内加个鼠标右键事件,在点击Chart之后则在下面的Datagridevi

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());
            }

            


        }


[其他解释]
分也加了,贴也结了,不过还得负责任的更新一下。
如果Result.Series为空的时候是会出现异常的。

 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);
                if(Result.Series!=null)
                MessageBox.Show("'X轴:'" + Result.Series.Points[Result.PointIndex].XValue.ToString() + "'Y轴:'" + Result.Series.Points[Result.PointIndex].YValues[0].ToString());
            }

            
        }


[其他解释]
先判断一下Series.count是否大于零,如果为零则直接退出

热点排行