Alterando as propriedades da fonte no VB.NET

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.

instagram viewer

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?

instagram story viewer