Control de fuentes para usuarios de Visual Basic 6.0

Actualización: noviembre 2007

En este tema se comparan las técnicas de control de fuentes en Visual Basic 6.0 con sus equivalentes en Visual Basic 2008.

Diferencias conceptuales

Las fuentes se controlan en Visual Basic 6.0 de dos formas diferentes: como propiedades de fuentes de formularios y controles, o como objetos stdFont.

En Visual Basic 2008, existe un único objeto Font: System.Drawing.Font. La propiedad Font de un formulario o control acepta un objeto Font como argumento.

Establecer propiedades de fuente

En Visual Basic 6.0, las propiedades de fuente se pueden establecer en tiempo de ejecución asignando un objeto stdFont o estableciendo las propiedades directamente en el control; ambos métodos se pueden intercambiar.

En Visual Basic 2008, la propiedad Font de un control es de sólo lectura en tiempo de ejecución, no se pueden establecer directamente las propiedades. Debe crear una instancia de un nuevo objeto Font por cada propiedad que desee establecer.

Herencia de fuentes

En Visual Basic 6.0, las propiedades de fuente se tienen que establecer de forma individual para cada control o formulario; el uso de un objeto stdFont simplifica el proceso pero sigue necesitando un código.

En Visual Basic 2008, las propiedades de fuentes se heredan automáticamente de sus objetos primarios, a menos que se definan explícitamente para el objeto secundario. Por ejemplo, si tiene dos controles de etiqueta en un formulario y cambia la propiedad de fuente del formulario a Arial, las fuentes del control de etiqueta cambiarán también a Arial. Si, a continuación, cambia la fuente de una etiqueta a Times Roman, los cambios posteriores en la fuente del formulario no reemplazarán la fuente de la etiqueta.

Compatibilidad de fuentes

Visual Basic 6.0 admite fuentes de trama por razones de compatibilidad con versiones anteriores; Visual Basic 2008 únicamente admite fuentes TrueType y OpenType.

Enumerar fuentes

En Visual Basic 6.0 puede utilizar la colección Screen.Fonts junto con la propiedad Screen.FontCount para enumerar las fuentes de pantalla disponibles.

En Visual Basic 2008, el objeto Screen ya no existe; para enumerar las fuentes disponibles en el sistema, debe usar el espacio de nombres System.Drawing.FontFamily.

Nota:

Visual Basic 6.0 enumera todos los tipos de fuentes. Visual Basic 2008 únicamente admite fuentes TrueType y OpenType; no se enumeran otros tipos de fuentes. Además, Visual Basic 6.0 enumera cada versión de juego de caracteres de una familia de fuentes (por ejemplo, Arial, Arial Baltic, Arial Greek); Visual Basic 2008 únicamente enumera las familias de fuentes.

Cambios de código para fuentes

Los siguientes ejemplos de código muestran las diferencias en las técnicas de codificación entre Visual Basic 6.0 y Visual Basic 2008.

Cambios de código para establecer propiedades de fuentes

El ejemplo siguiente muestra cómo establecer propiedades de fuentes en tiempo de ejecución. En Visual Basic 6.0, puede establecer propiedades directamente en un control; en Visual Basic 2008, debe crear un nuevo objeto Font y asignarlo al control cada vez que necesite establecer una propiedad.

' 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)

Cambios de código para enumerar fuentes

El ejemplo siguiente muestra cómo completar un control ListBox con una lista de las fuentes instaladas en un equipo.

Nota:

Visual Basic 6.0 enumera todos los tipos de fuentes. Visual Basic 2008 únicamente admite fuentes TrueType y OpenType; no se enumeran otros tipos de fuentes. Además, Visual Basic 6.0 enumera cada versión de juego de caracteres de una familia de fuentes (por ejemplo, Arial, Arial Baltic, Arial Greek); Visual Basic 2008 únicamente enumera las familias de fuentes.

' 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

Notas de actualización

Cuando una aplicación de Visual Basic 6.0 se actualiza a Visual Basic 2008, se modificarán los fragmentos de código que controlen fuentes para usar el nuevo objeto Font.

La herencia de fuentes en Visual Basic 2008 puede producir cambios imprevistos en el aspecto de la aplicación. Debe comprobar en la aplicación convertida el código que establezca explícitamente una fuente en el formulario o nivel de contenedor y, si es necesario, cambie la fuente de los controles secundarios que no deban heredar esta fuente.

Durante la actualización, las fuentes de trama se convierten en la fuente OpenType predeterminada, Microsoft Sans Serif. Los formatos tales como negrita o cursiva no se conservan. Para obtener más información, vea Sólo se admiten las fuentes OpenType y TrueType.

Si la aplicación contiene código que enumere fuentes, no se enumerarán fuentes de trama en la aplicación actualizada y se enumerarán familias de fuentes en lugar de versiones de juegos de caracteres individuales.

Vea también

Referencia

Font

FontFamily.Families

Otros recursos

Controles de formularios Windows Forms para usuarios de Visual Basic 6.0