在运行时更改标签字体会出错

时间:2011-06-30 08:24:45

标签: .net asp.net vb.net visual-studio-2005 fonts

我想更改网页所有标签的字体。我编写以下代码,但它给出了错误,即字体是只读属性。我非常迫切需要这样做。任何人都可以帮忙

代码在这里

 Dim ctrl As Control
        Dim fnt As New Font("Verdana", 8, FontStyle.Bold, GraphicsUnit.Point)

        For Each ctrl In Me.Controls
            If (TypeOf ctrl Is Label) Then
                lbl = CType(ctrl, Label)
                lbl.Font = fnt
            End If
        Next

提前致谢

1 个答案:

答案 0 :(得分:1)

我认为你正在混合Winforms和ASP.NET。你说你想要更改WebPage上的标签字体,所以我假设它是一个ASP.NET-Webaplication。

我强烈建议您改用CSS。但是如果你需要快速工作的东西,你应该用这个代替你的代码:

 Public Sub ApplyFontStyleRecursively(ByVal parentControl As System.Web.UI.Control, ByVal fontInfo As FontInfo)
    If TypeOf parentControl Is Label Then
        DirectCast(parentControl, Label).Font.CopyFrom(fontInfo)
    End If

    For Each c As System.Web.UI.Control In parentControl.Controls
        ApplyFontStyleRecursively(c, fontInfo)
    Next
End Sub

并称之为:

Dim lbl As New Label
lbl.Font.Name = "Verdana"
lbl.Font.Bold = True
ApplyFontStyleRecursively(Me.Page, lbl.Font)