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

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

概述Public Class frmDl     Dim x As Single = 0     Dim y As Single = 0       Private Sub frmDl_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load         x = Me.Width    

Public Class frmDl

Dim x As Single = 0

Dim y As Single = 0

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

x = Me.WIDth

y = Me.Height

setTag(Me)

End Sub

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

Private Sub setTag(ByVal obj As Object)

For Each con As Control In obj.Controls

con.Tag = con.WIDth & @H_403_144@":" & con.Height & @H_403_144@":" & con.left & @H_403_144@":" & con.top & @H_403_144@":" & con.Font.Size

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

If con.Controls.Count > 0 Then

setTag(con)

End If

Next

End Sub

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

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

For Each con As Control In obj.Controls

con.autoSize = False

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

con.WIDth = mytag(0) * newx

con.Height = mytag(1) * newy

con.left = mytag(2) * newx

con.top = mytag(3) * newy

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

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

con.Font = New Font(con.Font.name,currentSize,_

con.Font.Style,con.Font.Unit)

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

If con.Controls.Count > 0 Then

setControls(newx,newy,con)

End If

Next

End Sub

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

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

Dim newx As Single = Me.WIDth / x

Dim newy As Single = Me.Height / y

setControls(newx,Me)

End Sub

End Class

总结

以上是内存溢出为你收集整理的vb.net 控件(包括字体)随窗体按比例缩放全部内容,希望文章能够帮你解决vb.net 控件(包括字体)随窗体按比例缩放所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1294111.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存