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??
Aquí está el patrón de código básico para Windows Forms.
Private Sub BoldCheckbox_CheckedChanged (_
Remitente ByVal como System.Object, _
ByVal e As System.EventArgs) _
Maneja BoldCheckbox.CheckedChanged
Si BoldCheckbox.CheckState = CheckState.Checked entonces
TextToBeBold.Font = _
Nueva fuente (TextToBeBold.Font, FontStyle.Bold)
Más
TextToBeBold.Font = _
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 tu programa, pero el costo es que debes escribir el código para obtener ese control. VB6 eliminará internamente un recurso de fuente GDI y creará uno nuevo. Con VB.NET, debes hacerlo tú 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 como nueva fuente ("Arial", FontStyle.Bold)
Private fNormal As New Font ("Arial", FontStyle.Regular)
Entonces puedes codificar:
TextToBeBold.Font = 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.
¿Qué hay de WPF? WPF es un subsistema gráfico que puede usar con .NET Framework para crear aplicaciones donde la interfaz de usuario se basa en un lenguaje XML llamado XAML y el código es independiente del diseño y se basa en un lenguaje .NET como Visual Basic. 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 System.Object, _
ByVal e As System.Windows.RoutedEventArgs) _
Maneja BoldCheckbox.Checked
Si BoldCheckbox.IsChecked = True entonces
TextToBeBold.FontWeight = FontWeights.Bold
Más
TextToBeBold.FontWeight = FontWeights.Normal
Terminara si
End Sub
Los cambios son:
¡¡Uf!! ¿Crees que Microsoft realmente trató de hacerlo más confuso??