2007年8月30日

我们在设计窗体时,放置了一些可视的控件,比如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,根据你窗体的具体情况,你可以自动的增加你所用到的可视控件.

如果,你把上述代码加到你的窗体代码中,你会发现改变了窗体大小后,窗体上的可视控件的大小和位置也会相应的变化 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值