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

模块作用:让控件随窗体大小改变而改变 
模块代码: 
====请看下面===== 

Option Explicit 
Private FormOldWidth As Long 
'保存窗体的原始宽度 
Private FormOldHeight As Long 
'保存窗体的原始高度 

Public Sub ResizeForm(FormName As Form) 
      
Dim Pos(4As 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)
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值