窗体上的一些控件全部是动态生成的,由于一页看不完有向下的滚动条,当显示屏下面控件获得焦点时,这是如果再按 TAB 键, 滚动条应自动往下移. 现在出现的问题是:
如果当下面的控件获得焦点滚动条应要往下移动的时,该控件被包含在一个frame容器内,所以objName(objIndex).Top只是控件到容器的距离,而不是最初想要的到窗体的距离.
    如果在加上容器.top也可以,问题,怎么判断该控件是否包含在frame内? 被包含在哪个 frame内?    frame也是动态生成的,可以有很多.
    难啊,请高手帮忙!Private Sub moveToView(ByVal objName As Object, ByVal objIndex As Integer)
  On Error Resume Next
  If Not objName(objIndex) Is Nothing Then
    
    If objName(objIndex).Top + objName(objIndex).Height > (Me.ScaleHeight+ Me.vBAR.Value - Me.tbForm.Height Then
       vBAR.Value = objName.Top(objIndex) + objName.Height - (Me.ScaleHeight - IIf(hBAR.Visible, hBAR.Height, 0)) + Me.tbForm.Height + 280
    End If
    If objName(objIndex).Top < Me.vBAR.Value Then
       vBAR.Value = IIf(objName.Top(objIndex) - 240 > 0, objName.Top(objIndex) - 240, 0)
    End If

解决方案 »

  1.   

    也就是 当控件包含在容器内时
    If objName(objIndex).Top + objName(objIndex).Height > (Me.ScaleHeight+ Me.vBAR.Value - Me.tbForm.Height Then
           vBAR.Value = objName.Top(objIndex) + objName.Height - (Me.ScaleHeight - IIf(hBAR.Visible, hBAR.Height, 0)) + Me.tbForm.Height + 280无法执行,导致滚动条不能下移!
    如何是好??????????
      

  2.   

    包含它的容器是owner,消息传递的上级是parent
      

  3.   

    Kivic(享受·生活):
         没看懂什么意思,能说清楚点吗