Negrito é "somente leitura" no VB.NET. Este artigo explica como mudar isso.
No VB6, era fácil mudar uma fonte para negrito. Você simplesmente codificou algo como Label1.FontBold, mas no VB.NET, a propriedade Negrito do objeto Font para um Label é somente leitura. Então, como você muda isso?
Alterando as propriedades da fonte no VB.NET com Windows Forms
Aqui está o padrão de código básico para o Windows Forms.
Sub privado BoldCheckbox_CheckedChanged (_
Remetente ByVal como sistema. Objeto, _
ByVal e As System. EventArgs) _
Lida com o BoldCheckbox. CheckedChanged
Se BoldCheckbox. CheckState = CheckState. Verificado então
TextToBeBold. Font = _
Nova fonte (TextToBeBold. Fonte, FontStyle. Negrito)
Outro
TextToBeBold. Font = _
Nova fonte (TextToBeBold. Fonte, FontStyle. Regular)
Fim se
End Sub
Há muito mais do que Label1.FontBold, isso é certeza. No .NET, as fontes são imutáveis. Isso significa que, uma vez criados, eles não podem ser atualizados.
O VB.NET oferece mais controle do que você obtém VB6 sobre o que seu programa está fazendo, mas o custo é que você precisa escrever o código para obter esse controle. O VB6 eliminará internamente um recurso de fonte GDI e criará um novo. Com o VB.NET, você precisa fazer isso sozinho.
Você pode tornar as coisas um pouco mais globais adicionando uma declaração global na parte superior do seu formulário:
FBold privado como nova fonte ("Arial", FontStyle. Negrito)
Privado fNormal como nova fonte ("Arial", FontStyle. Regular)
Então você pode codificar:
TextToBeBold. Font = fBold
Observe que a declaração global agora especifica a família de fontes Arial, em vez de simplesmente usar a família de fontes existente de um controle específico.
Usando o WPF
E o WPF? O WPF é um subsistema gráfico que você pode usar com o .NET Framework para criar aplicativos em que a interface do usuário se baseia em uma linguagem XML chamada XAML e o código é separado do design e é baseado em uma linguagem .NET como Visual Basic. No WPF, a Microsoft mudou o processo mais uma vez. Aqui está a maneira como você faz a mesma coisa no WPF.
Private Sub BoldCheckbox_Checked (_
Remetente ByVal como sistema. Objeto, _
ByVal e As System. Janelas. RoutedEventArgs) _
Lida com o BoldCheckbox. Verificado
Se BoldCheckbox. IsChecked = True Then
TextToBeBold. FontWeight = FontWeights. Negrito
Outro
TextToBeBold. FontWeight = FontWeights. Normal
Fim se
End Sub
As mudanças são:
- O evento CheckBox é marcado em vez de CheckedChanged
- A propriedade CheckBox é IsChecked em vez de CheckState
- O valor da propriedade é um Booleano Verdadeiro / Falso, em vez do Enum CheckState. (O Windows Forms oferece uma propriedade Verificada Verdadeiro / Falso além do CheckState, mas o WPF não possui os dois.)
- FontWeight é uma propriedade de dependência do Label, em vez de FontStyle ser a propriedade do objeto Font.
- FontWeights é uma classe NotInheritable e Negrito é um valor estático nessa classe
Ufa!! Você acha que a Microsoft realmente tentou torná-lo mais confuso?