vb.net 控件(包括字体)随窗体按比例缩放

前端之家收集整理的这篇文章主要介绍了vb.net 控件(包括字体)随窗体按比例缩放前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Public@H_502_2@ Class@H_502_2@ frmDl@H_502_2@

@H_502_2@Dim@H_502_2@ x As@H_502_2@ Single@H_502_2@ = 0@H_502_2@

@H_502_2@Dim@H_502_2@ y As@H_502_2@ Single@H_502_2@ = 0@H_502_2@

@H_502_2@

@H_502_2@Private@H_502_2@ Sub@H_502_2@ frmDl_Load(ByVal@H_502_2@ sender As@H_502_2@ System.Object,ByVal@H_502_2@ e As@H_502_2@ System.EventArgs) Handles@H_502_2@ MyBase@H_502_2@.Load@H_502_2@

@H_502_2@x = Me@H_502_2@.Width@H_502_2@

@H_502_2@y = Me@H_502_2@.Height@H_502_2@

@H_502_2@@H_502_2@setTag(Me@H_502_2@)@H_502_2@

@H_502_2@End@H_502_2@ Sub@H_502_2@@H_502_2@

@H_502_2@'@H_502_2@@H_502_2@递归取控件的原始大小和位置,用@H_502_2@tag@H_502_2@来纪录@H_502_2@

@H_502_2@@H_502_2@Private@H_502_2@ Sub@H_502_2@ setTag(ByVal@H_502_2@ obj As@H_502_2@ Object@H_502_2@)@H_502_2@

@H_502_2@For@H_502_2@ Each@H_502_2@ con As@H_502_2@ Control In@H_502_2@ obj.Controls@H_502_2@

@H_502_2@con.Tag = con.Width & ":"@H_502_2@ & con.Height & ":"@H_502_2@ & con.Left & ":"@H_502_2@ & con.Top & ":"@H_502_2@ & con.Font.Size@H_502_2@

@H_502_2@@H_502_2@'@H_502_2@如果是容器控件,则递归继续纪录@H_502_2@

@H_502_2@@H_502_2@If@H_502_2@ con.Controls.Count > 0 Then@H_502_2@@H_502_2@

@H_502_2@setTag(con)@H_502_2@

@H_502_2@@H_502_2@End@H_502_2@ If@H_502_2@@H_502_2@

@H_502_2@Next@H_502_2@@H_502_2@

@H_502_2@End@H_502_2@ Sub@H_502_2@@H_502_2@

@H_502_2@'@H_502_2@@H_502_2@递归重新设定控件的大小和位置@H_502_2@

@H_502_2@@H_502_2@Private@H_502_2@ Sub@H_502_2@ setControls(ByVal@H_502_2@ newx As@H_502_2@ Single@H_502_2@,ByVal@H_502_2@ newy As@H_502_2@ Single@H_502_2@,ByVal@H_502_2@ obj As@H_502_2@ Object@H_502_2@)@H_502_2@

@H_502_2@For@H_502_2@ Each@H_502_2@ con As@H_502_2@ Control In@H_502_2@ obj.Controls@H_502_2@

@H_502_2@con.AutoSize = False@H_502_2@@H_502_2@

@H_502_2@Dim@H_502_2@ mytag() As@H_502_2@ String@H_502_2@ = con.Tag.ToString.Split(":"@H_502_2@)@H_502_2@

@H_502_2@con.Width = mytag(0) * newx@H_502_2@

@H_502_2@con.Height = mytag(1) * newy@H_502_2@

@H_502_2@con.Left = mytag(2) * newx@H_502_2@

@H_502_2@con.Top = mytag(3) * newy@H_502_2@

@H_502_2@@H_502_2@'@H_502_2@计算字体缩放比例,缩放字体@H_502_2@

@H_502_2@@H_502_2@Dim@H_502_2@ currentSize As@H_502_2@ Single@H_502_2@ = (mytag(1) * newy * mytag(4)) / mytag(1)@H_502_2@

@H_502_2@con.Font = New@H_502_2@ Font(con.Font.Name,currentSize,_@H_502_2@

@H_502_2@con.Font.Style,con.Font.Unit)@H_502_2@

@H_502_2@@H_502_2@'@H_502_2@如果是容器控件,则递归继续缩放@H_502_2@

@H_502_2@@H_502_2@If@H_502_2@ con.Controls.Count > 0 Then@H_502_2@@H_502_2@

@H_502_2@setControls(newx,newy,con)@H_502_2@

@H_502_2@End@H_502_2@ If@H_502_2@@H_502_2@

@H_502_2@Next@H_502_2@@H_502_2@

@H_502_2@End@H_502_2@ Sub@H_502_2@@H_502_2@

@H_502_2@

@H_502_2@Private@H_502_2@ Sub@H_502_2@ frmDl_Resize(ByVal@H_502_2@ sender As@H_502_2@ Object@H_502_2@,ByVal@H_502_2@ e As@H_502_2@ System.EventArgs) Handles@H_502_2@ Me@H_502_2@.Resize@H_502_2@

@H_502_2@@H_502_2@'@H_502_2@得到现在窗体的大小,然后根据原始大小计算缩放比例@H_502_2@

@H_502_2@@H_502_2@Dim@H_502_2@ newx As@H_502_2@ Single@H_502_2@ = Me@H_502_2@.Width / x@H_502_2@

@H_502_2@Dim@H_502_2@ newy As@H_502_2@ Single@H_502_2@ = Me@H_502_2@.Height / y@H_502_2@

@H_502_2@setControls(newx,Me@H_502_2@)@H_502_2@

@H_502_2@End@H_502_2@ Sub@H_502_2@@H_502_2@

End@H_502_2@ Class@H_502_2@@H_502_2@

猜你在找的VB相关文章