求AutoResize控件(分不够可加)

SonicOne 2003-09-13 11:02:34
类似的也行!求求各位了
...全文
53 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
abc10 2003-09-13
  • 打赏
  • 举报
回复
'不要控件
'这个加在模块里
Public FormOldWidth As Long
Public FormOldHeight As Long


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
End Sub

Public 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 / FormOldWidth

ScaleY = FormName.ScaleHeight / FormOldHeight

On Error Resume Next

For 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 Sub

Public 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

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧