- Rongsen.Com.Cn 版权所有 2008-2010 京ICP备08007000号 京公海网安备11010802026356号 朝阳网安编号:110105199号
 - 北京黑客防线网安工作室-黑客防线网安服务器维护基地为您提供专业的
服务器维护
,企业网站维护
,网站维护
服务 - (建议采用1024×768分辨率,以达到最佳视觉效果) Powered by 黑客防线网安 ©2009-2010 www.rongsen.com.cn
 
 
    
        作者:黑客防线网安VB教程基地 来源:黑客防线网安VB教程基地 浏览次数:0 | 
我们在设计窗体时,放置了一些可视的控件,比如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,根据你窗体的具体情况,你可以自动的增加你所用到的可视控件.
如果,你把上述代码加到你的窗体代码中,你会发现改变了窗体大小后,窗体上的可视控件的大小和位置也会相应的变化 。
| 我要申请本站:N点 | 黑客防线官网 | | 
| 专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479 |