vb 控件随窗体变化

来源:百度知道 编辑:UC知道 时间:2024/05/27 16:02:32
vb 控件随窗体大小变化而变化,控件很多时,变化速度会很慢,而且有些控件不能保证正常变化,请问有什么解决的方法吗?

其实嘛,你不是很多控件都显示在窗体上的吧?
一起变当然慢咯
如果使用控件数组的,可以只变化显示着的控件,比如:
sub form_resize()
for i=ctl.lbound to ctl.ubound
if ctl.visible then
'变化代码
end if
next
end sub
当然如果把隐藏的控件2显示出来,由于原先隐藏没有变,这时你在让它显示出来以后马上变就行了
ctl(i).visible=true
form_resize

变化前隐藏控件,即设置控件的 Visible 为 False
变化完成后显示控件, Visible 为 True

看得不是很明白,不晓得楼主所说的是大小还是布局

布局就要用到top left等函数

Public Sub ResizeForm(FormName As Form)
Dim Pos() As String
Dim Obj As Control
Dim SX As Double, SY As Double

SX = FormName.ScaleWidth / FormOldWidth
'保存窗体宽度缩放比例
SY = FormName.ScaleHeight / FormOldHeight
'保存窗体高度缩放比例
On Error Resume Next
For Each Obj In FormName
If Len(Obj.Tag) > 0 Then
Pos = Split(Obj.Tag, " ")
If TypeOf Obj Is ComboBox Or TypeOf Obj Is DriveListBox Then
Obj.Move Pos(0) * SX, Pos(1) * SY, Pos(2