解决方案 »

  1.   


    Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
        Label1 = X
        Label2 = Y
    End Sub
      

  2.   

    鼠标移动只能给出坐标, 对应到曲线上的数据不一定准确, 如果你的曲线自变量是X,Y方向是应变量, 那么可以按照鼠标所在的X计算出Y坐标来. 如果精度没太高要求, 那么也可以直接取鼠标所在X坐标垂线和曲线的相交坐标.不论怎样, 这曲线是你自己画出来的, 所以给出任何一个值X或者Y, 你都能得出另外一个来.
      

  3.   

    在picture_mousemove事件中可以获取鼠标坐标(x1,y1),你换算成输出函数时的长度单位,然后代入函数看看误差是否满足要求.......
      

  4.   

    Option ExplicitFunction f(X As Single) As Single
        f = X / 2
    End FunctionPrivate Sub Form_Load()
        Picture1.BackColor = vbWhite
        Picture1.ForeColor = vbBlack
        Picture1.AutoRedraw = True
        Picture1.Cls
        Picture1.Line (0, 0)-(Picture1.ScaleWidth, Picture1.ScaleWidth / 2)
    End SubPrivate Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
        If Picture1.Point(X, Y) = vbBlack Then '假定是白底黑线,先用颜色判断做过滤'
            Debug.Print X & "," & Y
            Label1 = X & "," & f(X) '然后用曲线函数 f(x)求出精确的Y做显示'
        End If
    End Sub