VB中如何设置窗体内控件大小随窗体大小改变而改变?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
如果控件比较多的话,就要用数组了。 参考技术A 先在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
如果控件比较多的话,就要用数组了。 参考技术B 可以抛锚用anchor,不过这种方法只是控制控件的四个边的得相对坐标,控件大小可以随意,如果想完全跟随,实际上是像素坐标是变化的,必须用代码写。。。。其实也简单,让控件坐标和窗口size成比例就行了。。。 参考技术C form有一个resize事件
private
sub
form_resize()
……
end
sub
里面添加窗体大小变化的时候控件的变化就行了。
当然,对于应该如何变化,就得自己先算好咯。 参考技术D 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
MFC中TabCtrl控件怎么随着窗体的大小变化而变化?
我在做一个项目,需要最大化显示,但是初始界面不可能就画很大,所以在想怎么让标签控件放大,哪位大神不吝赐教?
参考技术A 写在Onsize里 获取tab的rect,然后跟界面算一下比例 然后movewindow 参考技术B 这有个MFC tabctrl的例子,当窗口执行WM_SIZE时,改变tabctrl的大小即可,用MoveWindow.http://www.codeproject.com/Articles/93521/MultiPaneCtrl追问
标签控件我已经能最大化了,但是子窗口里的控件怎么随窗口大小改变呢 ,有例子吗?
追答我给你的那个例子就有啊,每个标签控件都有个子窗口的。你仔细看看。。。
本回答被提问者采纳以上是关于VB中如何设置窗体内控件大小随窗体大小改变而改变?的主要内容,如果未能解决你的问题,请参考以下文章