VB中如何设置窗体内控件大小随窗体大小改变而改变?

如题所述

先在Form_Load中记录控件的相对位置及大小比例,然后在Form_Resize中按比例设置控件的位置及大小即可:

Dim ll As Single, tt As Single, ww As Single, hh As Single

Private Sub Form_Load()

ll = Text1.Left / Me.ScaleWidth
tt = Text1.Top / Me.ScaleHeight

ww = Text1.Width / Me.ScaleWidth
hh = Text1.Height / Me.ScaleHeight

End Sub

Private Sub Form_Resize()
Text1.Left = Me.ScaleWidth * ll
Text1.Top = Me.ScaleHeight * tt
Text1.Width = Me.ScaleWidth * ww
Text1.Height = Me.ScaleHeight * hh
End Sub

如果控件比较多的话,就要用数组了。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-14
先在Form_Load中记录控件的相对位置及大小比例,然后在Form_Resize中按比例设置控件的位置及大小即可:

Dim ll As Single, tt As Single, ww As Single, hh As Single

Private Sub Form_Load()

ll = Text1.Left / Me.ScaleWidth
tt = Text1.Top / Me.ScaleHeight

ww = Text1.Width / Me.ScaleWidth
hh = Text1.Height / Me.ScaleHeight

End Sub

Private Sub Form_Resize()
Text1.Left = Me.ScaleWidth * ll
Text1.Top = Me.ScaleHeight * tt
Text1.Width = Me.ScaleWidth * ww
Text1.Height = Me.ScaleHeight * hh
End Sub

如果控件比较多的话,就要用数组了。
第2个回答  2013-01-19
可以抛锚用anchor,不过这种方法只是控制控件的四个边的得相对坐标,控件大小可以随意,如果想完全跟随,实际上是像素坐标是变化的,必须用代码写。。。。其实也简单,让控件坐标和窗口size成比例就行了。。。
第3个回答  2019-11-15
form有一个resize事件
private
sub
form_resize()

……
end
sub
里面添加窗体大小变化的时候控件的变化就行了。
当然,对于应该如何变化,就得自己先算好咯。
第4个回答  2013-01-19
1、全用代码控制大小和位置
2、用乘除法,不用加减
3、在Form_Resize里面写代码
比如
Private Sub Form_Resize()
Command1.Width = 0.2 * Me.Width
Command1.Height = 0.2 * Me.Height
Command1.Top = 0.15 * Me.Height
Command1.Left = 0.3 * Me.Height
End Sub

VB 中如何使控件位置和大小自动适应窗体变化?
1. 在窗体上添加一个框架控件。2. 将需要自动适应窗体变化的控件(如按钮)拖放到框架内。3. 调整框架的大小和位置。当窗体大小变化时,框架内的控件也将自动调整大小和位置,从而实现随窗体变化的自适应。使用框架控件能简化控件布局的调整工作,提高代码的可维护性和灵活性。通过将控件放入框架内,只...

VB 控件大小随窗体改变而改变
'根据控件的原始位置及窗体改变大小的比例对控件重新定位与改变大小 Obj.Move Pos(0) * ScaleX, Pos(1) * ScaleY, Pos(2) * ScaleX, Pos(3) * ScaleY Next i Next Obj On Error GoTo 0 End Sub ...

VB怎么让窗口改变大小时控件也按比例改变大小?
可以用窗体的Resize事件来实现,改变窗体大小时,控件大小跟窗体成比例,不过如果最小化的时候就会出错,所以还得把最小化的事件给去了,代码如下:Private Sub Form_Resize()If Me.WindowState <> 1 Then '如果不是最小化 Command1.Width = Me.Width \/ 5 '按钮宽度是窗体的1\/5 Command1.Height ...

vb6.0怎么让窗体里的控件随着窗体的变化而改变大小?
'窗口大小发生改变时 Private Sub Form_Resize()On Error Resume Next '最小大小,防止比例失调 If Me.Width < 4800 Then Me.Width = 4800 If Me.Height < 3600 Then Me.Height = 3600 Dim cu As Control For Each cu In Me.Controls '调整大小 cu.Move cu.Left * Me.Width \/ OldW, cu...

vb语言中怎么使窗体和窗体里的控件同时放大缩小?
思路在form1的load和resize里设置每个控件的长宽,都用form1的长宽表示,比如command1.width=1\/20*me.width 这样当当窗体宽度改变后按钮的宽度始终是它的1\/20高度类同

VB窗体的背景如何随窗体的变大而变大变小而变小
最简单的方法,而且不用借助其他图像控件:Private Sub Form_Load()Me.AutoRedraw = True End Sub Private Sub Form_Resize()Me.PaintPicture Me.Picture, 0, 0, Me.ScaleWidth, Me.ScaleHeight End Sub

在VB中,如果窗体改变大小,控件也跟着改变,代码该怎么写?
'只要设置它的长和宽跟窗体形成关系就行了(在click、 mouseup ...事件里都可以。下面是在mousemove事件里写的,就是说鼠标移到窗体内就会发生改变。)下面是代码:Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Label1.BorderStyle = 1 '它的边框要...

怎么统一设置vb窗体上所有控件字体大小
工具\/材料:电脑、VB 软件 1、首先,打开VB,并新建“标准EXE”。2、在vb的上方选择“工具”选项。3、在弹出的对话框中,选择“编辑器格式”—“确定”。4、在下图标注的红色圆圈内可以选择字号,根据自身需要,选择字体合适的大小。点击“确定”。5、双击工程面板,弹出的编辑器中,字体就变大了。

...窗口form的大小跟随改变大小的代码是怎么编写的?
VB6.0中Form中有一个事件叫Resize()的事件,他相当于VB.NET中的SizeChange事件。依据窗体尺寸设置控件大小、位置,这就是分辨率思想。VB6.0例子:Private Sub Form1_ ReSize(){ Button1.Left=Int(Me.Width*0.1)'\/\/左边距窗体的10% Button1.Width=100 Button1.Top=Int(Me.Height*0.0...

在VB中如何实现MDI窗体的背景图随窗口的大小而变化
简单一点的方式是,在MDI主窗体内添加一个picturebox控件,然后在这个picturebox中添加一个image控件。Picture1的属性:1.Align=top 2.Appearance=flat 3.BordeStyle=None 4.TabStop=false Image1的属性:1.Stretch=true 在MDI窗体的resize事件中添加如下代码:Private Sub MDIForm_Resize()Me.Picture1....

相似回答