La negrita es "solo lectura" en VB.NET. Este artículo te dice cómo cambiar eso.
En VB6, era muy fácil cambiar una fuente a negrita. Simplemente codificaste algo como Label1.FontBold, pero en VB.NET, la propiedad Bold del objeto Font para una etiqueta es de solo lectura. Entonces, ¿cómo lo cambias?
Cambiar las propiedades de fuente en VB.NET con formularios Windows Forms
Aquí está el patrón de código básico para Windows Forms.
Private Sub BoldCheckbox_CheckedChanged (_
Remitente ByVal como sistema. Objeto, _
ByVal e como sistema. EventArgs) _
Tiradores BoldCheckbox. CheckedChanged
Si BoldCheckbox. CheckState = CheckState. Comprobado entonces
TextToBeBold. Fuente = _
Nueva fuente (TextToBeBold. Font, FontStyle. Negrita)
Más
TextToBeBold. Fuente = _
Nueva fuente (TextToBeBold. Font, FontStyle. Regular)
Terminara si
End Sub
Hay mucho más que Label1.FontBold, eso es seguro. En .NET, las fuentes son inmutables. Eso significa que una vez que se crean no se pueden actualizar.
VB.NET te da más control del que obtienes con
VB6 sobre lo que está haciendo su programa, pero el costo es que tiene que escribir el código para obtener ese control. VB6 eliminará internamente un recurso de fuente GDI y creará uno nuevo. Con VB.NET, debe hacerlo usted mismo.Puede hacer que las cosas sean un poco más globales agregando una declaración global en la parte superior de su formulario:
Private fBold As New Font ("Arial", FontStyle. Negrita)
Fuente privada como nueva fuente ("Arial", FontStyle. Regular)
Entonces puedes codificar:
TextToBeBold. Fuente = fBold
Tenga en cuenta que la declaración global ahora especifica la familia de fuentes, Arial, en lugar de simplemente usar la familia de fuentes existente de un control específico.
Usando WPF
¿Qué hay de WPF? WPF es un subsistema gráfico que puede usar con .NET Framework para crear aplicaciones donde se basa la interfaz de usuario en un lenguaje XML llamado XAML y el código es independiente del diseño y se basa en un lenguaje .NET como Visual Básico. En WPF, Microsoft cambió el proceso una vez más. Así es como haces lo mismo en WPF.
Private Sub BoldCheckbox_Checked (_
Remitente ByVal como sistema. Objeto, _
ByVal e como sistema. Windows RoutedEventArgs) _
Tiradores BoldCheckbox. Comprobado
Si BoldCheckbox. IsChecked = True Entonces
TextToBeBold. FontWeight = FontWeights. Negrita
Más
TextToBeBold. FontWeight = FontWeights. Normal
Terminara si
End Sub
Los cambios son:
- El evento CheckBox es Checked en lugar de CheckedChanged
- La propiedad CheckBox es IsChecked en lugar de CheckState
- El valor de la propiedad es Boolean True / False en lugar de Enum CheckState. (Windows Forms ofrece una propiedad Verificado verdadero / falso además de CheckState, pero WPF no tiene ambas).
- FontWeight es una propiedad de dependencia de Label en lugar de que FontStyle sea propiedad del objeto Font.
- FontWeights es una clase no heredable y Bold es un valor estático en esa clase
¡¡Uf!! ¿Crees que Microsoft realmente trató de hacerlo más confuso?