类似的也行!求求各位了

解决方案 »

  1.   

    '不要控件
    '这个加在模块里
    Public FormOldWidth As Long
    Public FormOldHeight As Long
    Public Sub ResizeInit(FormName As Form)   '记录窗体及各控件原始位置及尺寸
    Dim Obj As ControlFormOldWidth = FormName.ScaleWidth
    FormOldHeight = FormName.ScaleHeightOn Error Resume Next
    For Each Obj In FormName
        Obj.Tag = Obj.Left & " " & Obj.Top & " " & Obj.Width & " " & Obj.Height & " "
    Next Obj
    End SubPublic Sub ResizeForm(FormName As Form)  '当窗体大小发生变化时,各控件尺寸及位置作相应变化
    Dim Pos    '控件原先尺寸、位置
    Dim I As Long  '计数器
    Dim Obj As Control   '遍历窗体内控件
    Dim ScaleX As Double, ScaleY As Double   '缩放比例ScaleX = FormName.ScaleWidth / FormOldWidthScaleY = FormName.ScaleHeight / FormOldHeightOn Error Resume NextFor Each Obj In FormName
        Pos = Split(Obj.Tag, " ", , vbTextCompare)
        Obj.Move Pos(0) * ScaleX, Pos(1) * ScaleY, Pos(2) * ScaleX, Pos(3) * ScaleY
    Next Obj
    End SubPublic Sub AdjustForm(ScaleX As Single, ScaleY As Single, frm As Form)
        Dim s As Object
        On Error Resume Next
        For Each s In frm.Controls
            s.Left = s.Left * ScaleX
            s.Top = s.Top * ScaleY
            s.Width = s.Width * ScaleX
            s.Height = s.Height * ScaleY
        Next
    End Sub'以下加在你的form窗口里。Private Sub Form_Load()
    Call ResizeInit(Me)
    End Sub
    '分不够再加,有多少分啊? :)
    Private Sub Form_Resize()
    Call ResizeForm(Me)
    End Sub