不明白,控件在FORM里面, FORM的TOP和LEFT对于控件来说就是零。控件离FORM的TOP和LEFT有多远, 就是控件的座标。

解决方案 »

  1.   

    如果没有其他容器,就是top和left
    否则用top+容器.top(left++容器.left)
    取得控件绝对Top值 
    Public Function AbsoluteTop(ctlContl As Control) As Single
    Dim wrkContl As Control 
    Dim wrkTopPos As Single On Error GoTo AbsoluteTopError
    '初始
    Set wrkContl = ctlContl
    wrkTopPos = 0
    '循环
    Do
    If (wrkContl.Container.Name = ctlContl.Parent.Name) Then Exit Do
    wrkTopPos = wrkTopPos + wrkContl.Top ' 计算位置
    Set wrkContl = wrkContl.Container ' 下个控件
    LoopAbsoluteTop = wrkTopPos + ctlContl.Parent.Top
    Exit FunctionAbsoluteTopError:
    AbsoluteTop = ctlContl.Top + ctlContl.Parent.Top
    Exit Function
    End Function