栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

vb.net固定长度的label根据显示文字的多少自动放大/缩小字体

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

vb.net固定长度的label根据显示文字的多少自动放大/缩小字体

前提:画面得放一个隐藏的Label,并且该隐藏Label的【AutoSize】属性设置为【TRUE】。

调用方法:
SetFontSize(Me.lbl13, Me.lblArari, 152, 22, “” & Format(result, “###,##0”))
参数说明:lbl13 --画面隐藏Label。
lblArari --要改变字体大小的目标Label。
152 --要改变字体大小的目标Label的最大宽度。
22 --要改变字体大小的目标Label的最大字体大小。
“” & Format(result, “###,##0”) ----要改变字体大小的目标Label的text

Private Sub SetFontSize(ByVal lblCompare As Label,
                        ByVal lblResult As Label,
                        ByVal lblWidth As Single,
                        ByVal lblFontSize As Single,
                        ByVal txtResult As String)
    Dim lblFont As Font = New Font(lblResult.Font.FontFamily, lblFontSize, lblResult.Font.Style)
    lblCompare.Text = txtResult

    If lblCompare.Width <= lblResult.Width Then
        lblResult.Width = lblWidth
        lblResult.Font = lblFont
        lblResult.Text = txtResult
    Else
        Dim iChangeFontSize As Single = lblFontSize
        SetFontSizeChange(iChangeFontSize, lblCompare, lblResult, lblWidth, lblFontSize, txtResult)
    End If
End Sub

Private Function SetFontSizeChange(ByRef iChangeFontSize As Single,
                                   ByVal lblCompare As Label,
                                   ByVal lblResult As Label,
                                   ByVal lblWidth As Single,
                                   ByVal lblFontSize As Single,
                                   ByVal txtResult As String) As Boolean

    Dim lblFont As Font = New Font(lblResult.Font.FontFamily, iChangeFontSize, lblResult.Font.Style)

    If iChangeFontSize < 1 OrElse iChangeFontSize - 0.25 < 1 Then
        lblResult.Font = lblFont
        lblResult.Text = txtResult
        Return True
    End If

    iChangeFontSize += -0.25
    lblCompare.Font = lblFont

    If lblCompare.Width > lblResult.Width Then
        If SetFontSizeChange(iChangeFontSize, lblCompare, lblResult, lblWidth, lblFontSize, txtResult) = True Then
            Return True
        End If
    End If
    lblResult.Font = lblFont
    lblResult.Text = txtResult
    lblCompare.Font = New Font(lblResult.Font.FontFamily, lblFontSize, lblResult.Font.Style)
    Return True
End Function
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/911285.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号