您的位置:首页 > 其它

让控件随窗体大小改变而改变

2008-02-18 17:28 357 查看

模块作用:让控件随窗体大小改变而改变


模块代码:


====请看下面=====




Option Explicit


Private FormOldWidth As Long


'保存窗体的原始宽度


Private FormOldHeight As Long


'保存窗体的原始高度




Public Sub ResizeForm(FormName As Form)


Dim Pos(4) As Double


Dim i As Long, TempPos As Long, StartPos As Long


Dim Obj As Control


Dim 窗体宽比例 As Double, 窗体高比例 As Double




窗体宽比例 = FormName.ScaleWidth / FormOldWidth


'保存窗体宽度缩放比例


窗体高比例 = FormName.ScaleHeight / FormOldHeight


'保存窗体高度缩放比例


On Error Resume Next


For Each Obj In FormName


StartPos = 1


For i = 0 To 4


'读取控件的原始位置与大小


TempPos = InStr(StartPos, Obj.Tag, " ", vbTextCompare)


If TempPos > 0 Then


Pos(i) = Mid(Obj.Tag, StartPos, TempPos - StartPos)


StartPos = TempPos + 1


Else


Pos(i) = 0


End If


'根据控件的原始位置及窗体改变大小的比例对控件重新定位与改变大小


Obj.Move Pos(0) * 窗体宽比例, Pos(1) * 窗体高比例, Pos(2) * 窗体宽比例, Pos(3) * 窗体高比例


Next i


Next Obj


On Error GoTo 0


End Sub




Public Sub ResizeInit(FormName As Form)


Dim Obj As Control


FormOldWidth = FormName.ScaleWidth


FormOldHeight = FormName.ScaleHeight


On Error Resume Next


For Each Obj In FormName


Obj.Tag = Obj.Left & " " & Obj.Top & " " & Obj.Width & " " & Obj.Height & " "


Next Obj


On Error GoTo 0


End Sub


=======代码到这里止=====


模块名字:自定义


模块使用方法:




在窗体的 load 事件 调用:




Call ResizeInit(Me)




在窗体的 Resize 事件中调用:




Call ResizeForm(Me)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: