在VB 程序中,控件的长宽跟随窗口form的大小跟随改变大小的代码是怎么编写的?

希望给出思路。初来乍到。对VB不熟悉。希望各位给出代码及思路。万分感谢。

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.05) '//上边距窗体高度得5%
    ...
    Grid1.Left=Button1.Left=Int(Me.Width*0.1)'//左边距窗体的10%
    Grid1.Top=Button1.Top+Button1.Height+100
    Grid1.Width=Button1.Left=Int(Me.Width*0.8)'//宽度80%
    Grid1.Height=Me.Height-Grid1.Top-Me.Height*0.05
}

C#.NET Winform例子:

private void Form1_SizeChanged(object sender,EventArgs e)
{
    //左边上边距离是窗体整体宽度和高度的5%,宽度和高度是窗体的90%
    panel1.Top=Convert.ToInt32(this.ClientSize.Height*0.05)
    panel1.Left=Convert.ToInt32(this.ClientSize.Width*0.05)
    panel1.Width=Convert.ToInt32(this.ClientSize.Width*0.9)
    panel1.Height=Convert.ToInt32(this.ClientSize.Height*0.9)
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-09-09

以文本框为例:

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

相似回答