Жирный шрифт доступен только для чтения в VB.NET. В этой статье рассказывается, как это изменить.
В VB6 было очень легко изменить шрифт на жирный. Вы просто закодировали что-то вроде Label1.FontBold, но в VB.NET свойство Bold объекта Font для метки доступно только для чтения. Так как вы это измените?
Изменение свойств шрифта в VB.NET с Windows Forms
Вот базовый шаблон кода для Windows Forms.
Private Sub BoldCheckbox_CheckedChanged (_
ByVal отправитель как система. Объект, _
ByVal e As System. EventArgs) _
Ручки BoldCheckbox. CheckedChanged
Если BoldCheckbox. CheckState = CheckState. Затем проверил
TextToBeBold. Шрифт = _
Новый шрифт (TextToBeBold. Font, FontStyle. Жирный)
еще
TextToBeBold. Шрифт = _
Новый шрифт (TextToBeBold. Font, FontStyle. Regular)
End If
End Sub
Там намного больше, чем Label1.FontBold, это точно. В .NET шрифты неизменны. Это означает, что после их создания они не могут быть обновлены.
VB.NET дает вам больше контроля, чем вы получаете с VB6 над тем, что делает ваша программа, но цена заключается в том, что вы должны написать код, чтобы получить этот контроль. VB6 внутренне отбросит один ресурс шрифта GDI и создаст новый. С VB.NET вы должны сделать это самостоятельно.
Вы можете сделать вещи немного более глобальными, добавив глобальное объявление вверху формы:
Частный fBold As New Font ("Arial", FontStyle. Жирный)
Частный fNormal As New Font ("Arial", FontStyle. Regular)
Тогда вы можете код:
TextToBeBold. Font = fBold
Обратите внимание, что глобальное объявление теперь определяет семейство шрифтов Arial, а не просто использует существующее семейство шрифтов одного конкретного элемента управления.
Использование WPF
Как насчет WPF? WPF - графическая подсистема, которую вы можете использовать с .NET Framework для создания приложений, основанных на пользовательском интерфейсе на языке XML под названием XAML, и этот код отделен от проекта и основан на языке .NET, таком как Visual Основные. В WPF Microsoft изменила процесс еще раз. Вот как вы делаете то же самое в WPF.
Частный Sub BoldCheckbox_Checked (_
ByVal отправитель как система. Объект, _
ByVal e As System. Окна. RoutedEventArgs) _
Ручки BoldCheckbox. Проверено
Если BoldCheckbox. IsChecked = True Тогда
TextToBeBold. FontWeight = FontWeights. Жирный
еще
TextToBeBold. FontWeight = FontWeights. Обычный
End If
End Sub
Изменения:
- Событие CheckBox проверяется вместо CheckedChanged
- Свойство CheckBox IsChecked вместо CheckState
- Значением свойства является логическое True / False вместо Enum CheckState. (Windows Forms предлагает свойство True / False Checked в дополнение к CheckState, но WPF не имеет обоих.)
- FontWeight является свойством зависимости Label вместо FontStyle, являющимся свойством объекта Font.
- FontWeights - это класс NotInheritable, а Bold - это статическое значение в этом классе.
Уфф!! Как вы думаете, Microsoft действительно пыталась сделать это более запутанным?