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