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

求助:C#中Chart图表上的坐标怎么与窗体坐标对应
请大师指教,非常感谢!
------解决方案--------------------
哦 明白了  你就是要做一个框选放大功能对吧 早说嘛
 首先你的chart控件x轴最小刻(min)和最大刻度(max)对应的是窗体位置是ex1和ex2(这个你可以在chart控件上加一个鼠标移动事件来获取最小刻度和最大刻度位置时对应的的e.x)
private void chart1_MouseMove(object sender, MouseEventArgs e)
        {
            label1.Text = e.X.ToString();
        }
然后如果你要框选的话肯定得给控件加个鼠标按下事件可鼠标放开事件 分别记录他的坐标值 加入你按下鼠标对应屏幕坐标值为e.x和e.y 那当前chart控件的坐标值可以得出 (max-min)/(ex2-ex1) = (e.x-min)/(当前的x轴坐标-ex1) 计算就可以得出当前x轴坐标了同理 其他三个坐标也可以得出
------解决方案--------------------
引用:
这个方法,确实可以找到相对坐标,实现框选放大。能不能省掉选点这个动作,直接找到坐标原点对应的窗体坐标呢?


兄弟,这个功能我以前做过,怎么说呢 不是很完美 因为你如果把From窗体宽度或高度变大了 那Chart控件也变大了 自然原点和最大点对应的坐标e.X就变化了 而后台原点和最大点对应坐标是固定的 这样肯定会有问题的 我们当初采取的是不容许最大化和拉伸窗体,这样原点对应窗体的坐标和最大点对应窗体的坐标就固定了,只要开发的时候测好这两个坐标点就OK了