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中如何设置窗体内控件大小随窗体大小改变而改变?的主要内容,如果未能解决你的问题,请参考以下文章

vb中如何使窗体和控件的相对位置不发生改变

vb中一个窗口中的控件随窗口的大小改变而相应改变位置

怎样使delphi里的控件随窗体的大小变化而变化

vc中如何让背景图片随窗体的大小变化而改变 mfc

C#控件的位置和大小随窗体大小的变化而变化

如何设置禁止改变“C# WINFORM”窗体大小?