控件随窗体大小改变而改变大小和位置
在敲系统时,每个窗体上都有很多控件,我们把控件和窗体位置搭配好,当我们改变窗体大小时,控件和窗体位置又不搭调了。那我们怎么办呢!我在网上找到一种方法,我个人也试了,可以让控件根据窗体的大小变化而变化。(此方法只能在XP中实现。)
Option ExplicitPrivate FormOldWidth As Long'保存窗体的原始宽度Private FormOldHeight As Long'保存窗体的原始高度Public Sub ResizeInit(FormName As Form)Dim Obj As ControlFormOldWidth = FormName.ScaleWidthFormOldHeight = FormName.ScaleHeightOn Error Resume NextFor Each Obj In FormNameObj.Tag = Obj.Left & " " & Obj.Top & " " & Obj.Width & " " & Obj.Height & " "Next ObjOn Error GoTo 0End SubPublic Sub ResizeForm(FormName As Form)Dim Pos(4) As DoubleDim i As Long, TempPos As Long, StartPos As LongDim Obj As ControlDim ScaleX As Double, ScaleY As DoubleScaleX = FormName.ScaleWidth / FormOldWidthScaleY = FormName.ScaleHeight / FormOldHeightOn Error Resume NextFor Each Obj In FormNameStartPos = 1For i = 0 To 4TempPos = InStr(StartPos, Obj.Tag, " ", vbTextCompare)If TempPos > 0 ThenPos(i) = Mid(Obj.Tag, StartPos, TempPos - StartPos)StartPos = TempPos + 1ElsePos(i) = 0End IfObj.Move Pos(0) * ScaleX, Pos(1) * ScaleY, Pos(2) * ScaleX, Pos(3) * ScaleYNext iNext ObjOn Error GoTo 0End SubPrivate Sub Form_Resize()Call ResizeForm(Me) '确保窗体改变时控件随之改变End SubPrivate Sub Form_Load()Call ResizeInit(Me) '在程序装入时加入End sub
赞 (0)
