| 
 chart1.GetToolTipText += new EventHandler<ToolTipEventArgs>(chart_GetToolTipText); void chart_GetToolTipText(object sender, ToolTipEventArgs e) | |
| 
如果你不嫌麻烦 倒是可以这样做:
 获取鼠标所在位置在坐标区域内的坐标,判断该坐标离哪个点最近则tootip为那个点的Y值 | |
| 10分 | 
偷懒点,直接加粗,阴影曲线,不可以吗? | 
| 
鼠标所在位置的坐标 可以根据 公式    (X轴最大值-X轴最小值)/(X最大值出的e.X-X最小值处的e.X)=(鼠标所在位置X坐标-X最小坐标)/(鼠标所在位置e.X-X最小值处的e.X)   同理得出鼠标所在位置的Y坐标值 | |
| 
如何加粗,或者说点变成个圆圈也可以呀 | |
| 
void chart_GetToolTipText(object sender, ToolTipEventArgs e) { //if (e.HitTestResult.ChartElementType == ChartElementType.DataPoint) //{ // int i = e.HitTestResult.PointIndex; // DataPoint dp = e.HitTestResult.Series.Points[i]; // e.Text = string.Format(“{1:F3}”, dp.XValue, dp.YValues[0]); //} double i1 = 0; int i2 = 0; for (int i = 0; i < chart1.Series[0].Points.Count; i++) { double flag = (chart1.Series[0].Points[i].XValue – e.X) * (chart1.Series[0].Points[i].XValue – e.X) + (chart1.Series[0].Points[i].YValues[0] – e.Y) * (chart1.Series[0].Points[i].YValues[0] – e.Y); if (i == 0) { i1 = flag; } else { if (flag < i1) { i1 = flag; i2 = i; } } } DataPoint dp = chart1.Series[0].Points[i2]; e.Text = string.Format(“{1:F3}”, dp.XValue, dp.YValues[0]); } 这种方式我已经尝试了,弊端太多,不敢往下了 | |
| 
加粗不知道吗? 是对线的加错。。。像这样
 seriesmax.ChartType = SeriesChartType.Line; seriesmax.BorderWidth = 2; seriesmax.ShadowColor = Color.Black; seriesmax.ShadowOffset = 2; | |
| 5分 | 
提供个思路给你: 1、记得以前有一个软件,当你的鼠标移动到你需要指点的附近时,它就会“磁吸”到点那里去,你也可以这样,挑最近的吸过去。 2、如果你开发的是分析软件,而且精度要求很高的话,建议采用加粗放大方式,点击后“标点”再缩小回去。 仅供参考。 | 
|  问题解决了,我用了chart的mousemove时间,实时跟踪鼠标最近的X轴的位置,然后把cursorX设置到那个位置上,让用户知道我是选的那一个X的值,同时用tooltip显示该X轴上所有的Y值,结贴了谢谢大家。 | |
| 
仁兄怎么实现的,可否贴出来看看,我也想实现这样的效果,在折线和柱图上都有用,可否赐教leo_navy@163.com | |
| 
楼主,见你这个功能很炫,能给我发一份源码吗?我最近也在思考一个相似功能,麻烦您了 | |
| 
我邮箱547674781@qq.com,麻烦您了 | |
| 
具体的代码和调用,能发给我一份吗? 万分感谢! 793326822@qq.com | |
|   可以给每个点加一个marker,悬停就方便了 | |
| 
求楼主分享啊 | |
| 
谁有这段逻辑也给我一份吧。fspuzhang@163.com | |
 
                    



