2009-08-29 2 views
4

Visual Studio 2008과 함께 Visual Basic .NET에서 Windows Forms 응용 프로그램을 개발 중입니다.VB.NET : 런타임시 레이블에 글꼴을 작성하고 적용하는 방법은 무엇입니까?

사용자 기본 설정에 따라 런타임에 글꼴 (패밀리 이름, 글꼴 크기 및 스타일)을 구성하려고하는데, 레이블에 적용하십시오. 같은 글꼴을 사용하도록 요구하는 하나 이상의 컴퓨터 사이의 더 간단 사용자 인터페이스 모두의 술과의 호환성을 위해

, 나는는 InstalledFontCollection하지만, 선택된 몇 가지 설정합니다 버튼 세트를 사용하지 것 모든 컴퓨터 (Verdana와 같은 글꼴)에 있어야한다는 것을 알고 있습니다.

그래서 공용 서브 모듈을 만들어 글꼴을 만들지 만 코드 작성 방법을 모르겠습니다. 스타일, 굵게, 기울임 꼴, 밑줄 및 삼진을 설정하는 네 개의 확인란이 있습니다.

어떻게 코딩해야합니까? SomeLabel.Font.Bold 속성은 읽기 전용이며 "Times New Roman"과 같은 문자열을 FontFamily 유형으로 변환 할 때 문제가있는 것으로 보입니다. 사전에

Dim NewFontFamily As FontFamily = "Times New Roman" 

덕분에

처럼을 (그것은 단지 그것을 할 수 없었다 말한다).

답변

8

이 글꼴 문제를 해결해야합니다

Label1.Font = New Drawing.Font("Times New Roman", _ 
           16, _ 
           FontStyle.Bold or FontStyle.Italic) 

MSDN documentation on Font property here

다음과 같을 수이 글꼴을 생성하는 기능에 대한 가능한 구현 :

Public Function CreateFont(ByVal fontName As String, _ 
          ByVal fontSize As Integer, _ 
          ByVal isBold As Boolean, _ 
          ByVal isItalic As Boolean, _ 
          ByVal isStrikeout As Boolean) As Drawing.Font 

    Dim styles As FontStyle = FontStyle.Regular 

    If (isBold) Then 
     styles = styles Or FontStyle.Bold 
    End If 

    If (isItalic) Then 
     styles = styles Or FontStyle.Italic 
    End If 

    If (isStrikeout) Then 
     styles = styles Or FontStyle.Strikeout 
    End If 

    Dim newFont As New Drawing.Font(fontName, fontSize, styles) 
    Return newFont 

End Function 

글꼴 것을, 불변 한 번 생성되면 업데이트 할 수 없습니다. 따라서 모든 읽기 전용 속성을 발견했습니다.

+0

고마워요! =) 그것은 내 문제를 해결했습니다! –

+0

그리고 다른 사람들을 도울 수있는 경우를 대비하여, 내가 원했던 가치를 제외하고는 이전 글꼴의 정보를 그대로 사용하여 다음 글꼴을 만드는 것이 었습니다. 내 의견으로는, VB.NET이 하나의 속성을 변경하도록 요청할 때 모든 반복 코딩을 수행 했더라면 더 쉬웠을 것입니다. 그러나 이미 쉽게 불평하지 않기 때문에 이미 쉽습니다. = P –