读书人

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

发布时间: 2012-12-23 11:28:15 作者: rapoo

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是否大于零,如果为零则直接退出

读书人网 >.NET

热点推荐