不要拉了窗体大小就找不到控件了!
谢谢提供,先来先得分!
谢谢提供,先来先得分!
解决方案 »
- VB获取外部数据
- winxp 的桌面主题
- 如何简单的控制界面的大小位置
- 如何获取textbox中的字符,将其写入access数据库指定字段
- 关于权限资料的更新设置的问题!汲及SQL的问题!
- 如何用Internet transfer Control控件的Http协议向指定服务器传输文件?
- 请问各位大侠如何让MSHFlexGrid控件及时更新?(急)
- 在winnt在如何屏蔽掉ctrl+esc win ctrl+alt+del 键呢?
- 用VB6.0运行程序时老出现“找不到可插入的ISAM” 请教高手解决
- 如何读取和修改WIndows注册表中 (默认) 这一键值(不是自己添加上去的,是自身就有的)?
- 各位大虾,救命啊。。。
- 找不到Internet Transfer 控件,在哪里加载的
Private Sub Form_Resize()
With Text1
.Top = 0
.Left = 0
.Height = Me.ScaleHeight
.Width = Me.ScaleWidth
End With
End Sub
Private FormOldWidth As Long
'`保存窗体的原始宽度
Private FormOldHeight As Long
'`保存窗体的原始高度'`在调用ResizeForm前先调用本函数
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'`按比例改变表单内各元件的大小,
'在调用ReSizeForm前先调用ReSizeInit函数
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 ScaleX As Double, ScaleY As DoubleScaleX = FormName.ScaleWidth / FormOldWidth
'`保存窗体宽度缩放比例
ScaleY = 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) * ScaleX, Pos(1) * ScaleY, Pos(2) * ScaleX, Pos(3) * ScaleY
Next I
Next Obj
On Error GoTo 0
End Sub
ResizeInit Me
End Sub
Private Sub Form_Resize()
ResizeForm Me
End Sub
不过这个模块对组合框不支持,需要自己改写的。
With Text1
.Top = 10
.Left = 10
.Height = Me.ScaleHeight - 20
.Width = Me.ScaleWidth - 20
End With
End Sub