改变窗体大小时,控件的大小随之改变_VB.net_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

改变窗体大小时,控件的大小随之改变

作者:黑客防线网安VB教程基地 来源:黑客防线网安VB教程基地 浏览次数:0

本篇关键词:改变随之大小小时
黑客防线网安网讯:我们在设计窗体时,放置了一些可视的控件,比如Label,CommandButton,TextBox等等.当然在设计时大小位置都比较协调,但是一旦到了运行时,用户改变了窗体的大小,而我们的控件却不随着窗体大小的改...

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

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

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-14719-1.html
网站维护教程更新时间:2012-04-03 01:13:15  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer