Schriftartbehandlung für Visual Basic 6.0-Benutzer

Aktualisiert: November 2007

In diesem Thema werden Verfahren zum Umgang mit Schriftarten in Visual Basic 6.0 mit ihren Entsprechungen in Visual Basic 2008 verglichen.

Konzeptionelle Unterschiede

In Visual Basic 6.0 werden Schriftarten auf zwei verschiedene Arten behandelt: als Schrifteigenschaften von Formularen und Steuerelementen oder als stdFont-Objekt.

In Visual Basic 2008 gibt es ein einziges Font-Objekt: System.Drawing.Font. Die Font-Eigenschaft eines Formulars oder Steuerelements nimmt ein Font-Objekt als Argument an.

Festlegen von Schrifteigenschaften

In Visual Basic 6.0 können die Schrifteigenschaften zur Laufzeit durch Zuweisen eines stdFont-Objekts oder durch direktes Angeben der Eigenschaften für das Steuerelement festgelegt werden. Beide Methoden sind austauschbar.

In Visual Basic 2008 ist die Font-Eigenschaft eines Steuerelements zur Laufzeit schreibgeschützt, Eigenschaften können nicht direkt festgelegt werden. Wenn Sie eine Eigenschaft festlegen möchten, müssen Sie jedes Mal ein neues Font-Objekt instanziieren.

Vererbung von Schriften

In Visual Basic 6.0 müssen die Schrifteigenschaften für jedes Steuerelement oder Formular einzeln festgelegt werden. Die Verwendung eines stdFont-Objekts vereinfacht den Prozess, erfordert aber immer noch Code.

In Visual Basic 2008 werden die Eigenschaften automatisch vom übergeordneten Element geerbt, es sei denn, sie wurden explizit für das untergeordnete Objekt festgelegt. Wenn Sie z. B. in einem Formular über zwei Label-Steuerelemente verfügen und die Schrifteigenschaft des Formulars in Arial ändern, ändern sich auch die Schriftarten der Label-Steuerelemente in Arial. Wenn Sie daraufhin die Schriftart eines Label-Steuerelements in Times Roman ändern, wird die Schriftart des Label-Steuerelements bei weiteren Änderungen der Formularschriftart nicht überschrieben.

Kompatibilität der Schriften

Visual Basic 6.0 unterstützt aus Gründen der Abwärtskompatibilität Rasterschriften, Visual Basic 2008 hingegen unterstützt nur TrueType- und OpenType-Schriftarten.

Auflisten von Schriften

In Visual Basic 6.0 können Sie die Screen.Fonts-Auflistung zusammen mit der Screen.FontCount-Eigenschaft verwenden, um die verfügbaren Bildschirmschriftarten aufzulisten.

In Visual Basic 2008 gibt es das Screen-Objekt nicht mehr. Verwenden Sie den System.Drawing.FontFamily-Namespace, um die im System verfügbaren Schriftarten aufzulisten.

Hinweis:

In Visual Basic 6.0 werden alle Schriftarttypen aufgelistet. Visual Basic 2008 unterstützt nur TrueType- und OpenType-Schriftarten, andere Schrifttypen werden nicht aufgelistet. Außerdem werden in Visual Basic 6.0 alle Zeichensatzversionen innerhalb einer Schriftartfamilie (z. B. Arial, Arial Baltic, Arial Greek) aufgeführt, in Visual Basic 2008 hingegen werden nur die Schriftartfamilien aufgelistet.

Codeänderungen für Schriftarten

Im folgenden Codebeispiel werden Unterschiede in den Codierungstechniken von Visual Basic 6.0 und Visual Basic 2008 aufgezeigt.

Codeänderungen zum Einstellen der Schrifteigenschaften

Das folgende Beispiel zeigt, wie Schrifteigenschaften zur Laufzeit festgelegt werden. In Visual Basic 6.0 können Sie Eigenschaften direkt für ein Steuerelement festlegen. In Visual Basic 2008 müssen Sie ein neues Font-Objekt erstellen und dieses bei jedem Festlegen einer Eigenschaft dem Steuerelement zuweisen.

' Visual Basic 6.0 
' Set font properties directly on the control.
Label1.FontBold = True
' Create a stdFont object.
Dim f As New stdFont
' Set the stdFont object to the Arial font.
f.Name = "Arial"
' Assign the stdFont to the control's font property.
Set Label1.Font = f
' You can still change properties at run time.
Label1.FontBold = True
Label1.FontItalic = True
' Visual Basic
' Create a new Font object  Name and Size are required.
Dim f As New System.Drawing.Font("Arial", 10)
' Assign the font to the control
Label1.Font = f
' To set additional properties, you must create a new Font object.
Label1.Font = New System.Drawing.Font(Label1.Font, FontStyle.Bold Or FontStyle.Italic)

Codeänderungen beim Auflisten von Schriftarten

Im folgenden Beispiel wird das Füllen eines ListBox-Steuerelements mit einer Liste der Schriftarten veranschaulicht, die auf einem Computer installiert sind.

Hinweis:

In Visual Basic 6.0 werden alle Schriftarttypen aufgelistet. Visual Basic 2008 unterstützt nur TrueType- und OpenType-Schriftarten, andere Schrifttypen werden nicht aufgelistet. Außerdem werden in Visual Basic 6.0 alle Zeichensatzversionen innerhalb einer Schriftartfamilie (z. B. Arial, Arial Baltic, Arial Greek) aufgeführt, in Visual Basic 2008 hingegen werden nur die Schriftartfamilien aufgelistet.

' Visual Basic 6.0 
Dim i As Integer
For i = 0 To Screen.FontCount – 1
   List1.AddItem Screen.Fonts(i)
Next i
' Visual Basic 
Dim ff As FontFamily
For Each ff In System.Drawing.FontFamily.Families
  listBox1.Items.Add(ff.Name)
Next

Hinweise zum Durchführen einer Aktualisierung

Bei Aktualisieren einer Visual Basic 6.0-Anwendung auf Visual Basic 2008 wird der gesamte Schriftbehandlungscode so geändert, dass das neue Font-Objekt verwendet wird.

Die Vererbung von Schriftarten in Visual Basic 2008 kann unbeabsichtigte Änderungen in der Darstellung der Anwendung verursachen. Prüfen Sie Ihre konvertierte Anwendung auf Code, der ausdrücklich eine Schriftart auf Formular- oder Containerebene festlegt. Ändern Sie gegebenenfalls die Schriftart für alle untergeordneten Steuerelemente, die diese Schriftart nicht erben sollen.

Beim Aktualisieren werden Rasterschriften in die OpenType-Standardschrift, Microsoft Sans Serif, konvertiert. Formatierungen, wie Fett oder Kursiv, gehen verloren. Weitere Informationen hierzu finden Sie unter Nur die Schriftarten OpenType und TrueType werden unterstützt.

Wenn die Anwendung Code enthält, der Schriftarten auflistet, werden Rasterschriften in der aktualisierten Anwendung nicht aufgelistet; außerdem werden Schriftartfamilien und keine einzelnen Zeichensatzversionen aufgelistet.

Siehe auch

Referenz

Font

FontFamily.Families

Weitere Ressourcen

Windows Forms-Steuerelemente für Visual Basic 6.0-Benutzer