Chart如何获得当前点的X和Y的value?

单线程加锁 2012-08-30 01:51:32
我想在CHart内加个鼠标右键事件,在点击Chart之后则在下面的Datagrideview中显示X\Y值及其相关的详细信息,要怎么样实现?
...全文
1284 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
代码誊写工 2012-08-31
  • 打赏
  • 举报
回复
先判断一下Series.count是否大于零,如果为零则直接退出
单线程加锁 2012-08-31
  • 打赏
  • 举报
回复
分也加了,贴也结了,不过还得负责任的更新一下。
如果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());
}


}

单线程加锁 2012-08-31
  • 打赏
  • 举报
回复
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());
}


}
单线程加锁 2012-08-31
  • 打赏
  • 举报
回复
呵呵,多谢了。分一定加,我先试一下哈。
代码誊写工 2012-08-30
  • 打赏
  • 举报
回复
开玩笑的,分多了要是能换美女还差不多。
代码誊写工 2012-08-30
  • 打赏
  • 举报
回复

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

[B][I][size=6]你把最后那个Debug.Print替换了就行了[/size][/I][/B]
lb331004 2012-08-30
  • 打赏
  • 举报
回复

[b]我也不会 帮顶 !!!
大家帮忙下吧 不要太看重分数!!![/
b]
代码誊写工 2012-08-30
  • 打赏
  • 举报
回复
你先加上吧
单线程加锁 2012-08-30
  • 打赏
  • 举报
回复
会者不难吧,分不够我可以再加啊。。。
单线程加锁 2012-08-30
  • 打赏
  • 举报
回复
怎么没人用过啊?

4,818

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧