我们在设计窗体时,放置了一些可视的控件,比如Label,CommandButton,TextBox等等.当然在设计时大小位置都比较协调,但是一旦到了运行时,用户改变了窗体的大小,而我们的控件却不随着窗体大小的改变而改变,特别是用户最大化窗体时,经常出现许多控件仍然挤在窗体左上角的现象,看着很不舒服......
那么,现在,如何来解决这个问题呢?
当然是捕捉Form的Resize事件!
下面是具体的代码:
'下面两句话放在Form的"通用"中声明
dim FrmW as single '存放改变前的窗体的宽度
dim frmH as single '存放改变前的窗体的高度
Private Sub Form_Load()
if windowstate <>vbMinimized then
FrmW=me.Width
FrmH=me.Height
'上面两句是初始化模块变量
end if
End Sub
Private Sub Form_Resize()
if FrmW=0 or FrmH=0 then exit sub
dim MyCon as me.Controls
dim sig1 as single,sig2 as single
sig1 = Me.Width / FrmW
sig2 = Me.Height / FrmH
For Each MyCon In Me.Controls
If TypeOf MyCon Is Label Or _
TypeOf MyCon Is CommandButton Or _
TypeOf MyCon Is ListView Or _
TypeOf MyCon Is TextBox Then
With MyCon
.Left = Int(.Left * sig1)
.Top = Int(.Top * sig2)
.Width = Int(.Width * sig1)
.Height = Int(.Height * sig2)
End With
End If
Next MyCon
FrmW = Me.Width
FrmH = Me.Height
End Sub
我上述的代码中用到了四个可视的控件:Label,CommandButton,ListView,TextBox,根据你窗体的具体情况,你可以自动的增加你所用到的可视控件.
如果,你把上述代码加到你的窗体代码中,你会发现改变了窗体大小后,窗体上的可视控件的大小和位置也会相应的变化 。
文章来源于领测软件测试网 https://www.ltesting.net/
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073