Il grassetto è "sola lettura" in VB.NET. Questo articolo spiega come cambiarlo.
In VB6, era molto facile cambiare un carattere in grassetto. Hai semplicemente codificato qualcosa del genere Label1.FontBold, ma in VB.NET, la proprietà Grassetto dell'oggetto Font per un'etichetta è di sola lettura. Quindi come lo cambi?
Ecco il modello di codice di base per Windows Form.
Sottotitoli privati BoldCheckbox_CheckedChanged (_
Mittente ByVal come System.Object, _
ByVal e As System.EventArgs) _
Gestisce BoldCheckbox.CheckedChanged
Se BoldCheckbox.CheckState = CheckState.Checked Quindi
TextToBeBold.Font = _
Nuovo carattere (TextToBeBold.Font, FontStyle.Bold)
Altro
TextToBeBold.Font = _
Nuovo carattere (TextToBeBold.Font, FontStyle.Regular)
Finisci se
End Sub
C'è molto di più Label1.FontBold, Certamente. In .NET, i caratteri sono immutabili. Ciò significa che una volta creati non possono essere aggiornati.
VB.NET ti dà più controllo di quello che ottieni con VB6 su ciò che il tuo programma sta facendo, ma il costo è che devi scrivere il codice per ottenere quel controllo. VB6 elimina internamente una risorsa di font GDI e ne crea una nuova. Con VB.NET, devi farlo da solo.
Puoi rendere le cose un po 'più globali aggiungendo una dichiarazione globale nella parte superiore del modulo:
Private fBold As New Font ("Arial", FontStyle.Bold)
Private fNormal come nuovo carattere ("Arial", FontStyle.Regular)
Quindi puoi codificare:
TextToBeBold.Font = fBold
Si noti che la dichiarazione globale ora specifica la famiglia di caratteri, Arial, anziché semplicemente utilizzare la famiglia di caratteri esistente di un controllo specifico.
Che dire di WPF? WPF è un sottosistema grafico che è possibile utilizzare con .NET Framework per creare applicazioni in cui l'interfaccia utente si basa su un linguaggio XML chiamato XAML e il codice è separato dal design e si basa su un linguaggio .NET come Visual Basic. In WPF, Microsoft ha nuovamente modificato il processo. Ecco come fai la stessa cosa in WPF.
Private Sub BoldCheckbox_Checked (_
Mittente ByVal come System.Object, _
ByVal e As System.Windows.RoutedEventArgs) _
Gestisce BoldCheckbox.Checked
Se BoldCheckbox.IsChecked = True Quindi
TextToBeBold.FontWeight = FontWeights.Bold
Altro
TextToBeBold.FontWeight = FontWeights.Normal
Finisci se
End Sub
Le modifiche sono:
Wow !! Pensi che Microsoft abbia effettivamente cercato di renderlo più confuso?