2011-06-30 3 views
0

ウェブページのすべてのラベルのフォントを変更したいと思います。次のコードを記述しますが、フォントが読み取り専用のプロパティであるというエラーが返されます。私は非常に緊急が必要です。誰もが実行時にラベルフォントを変更するとエラーが発生する

コードを助けることができ、ここで私はあなたがWinformsのとASP.NETを混合していると思う事前

+0

あなたのラベルのスタイルを変更するためにCSSを使用する必要があります。 –

+0

申し訳ありませんが、私はこの緊急を行う必要がありますが、他の人によって行われた以前の作業では、CSSを使用しないで、彼らは各ラベルのプロパティでそれを行うので、CSSはここで働かないでください – Vikky

答えて

1

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 

のおかげです。あなたはあなたの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) 
+0

それは変更を加えません – Vikky

+0

私のテストアプリケーションでもラベルがGridView-Rowsにある場合次に、aspxコードと、この関数を呼び出そうとした部分(質問を編集)を表示してください。上記のコードを使用したか、最初に投稿したコードを使用しましたか?違いは、 'MergeWith'を' CopyFrom'に変更したことです。 –

+0

私は空白のページを作成し、5つのラベルを追加した後、2行目のコードをページ読み込み時に、上のブロックをサブとして、ブラウザでページを表示するとラベルにデフォルトのフォントが表示されます。だから変更なし – Vikky

関連する問題