Το Bold είναι "μόνο για ανάγνωση" στο VB.NET. Αυτό το άρθρο σας λέει πώς να το αλλάξετε αυτό.
Στο VB6, ήταν εύκολο να αλλάξει μια γραμματοσειρά με έντονους χαρακτήρες. Απλά κωδικοποιήσατε κάτι σαν Label1.FontBold, αλλά στο VB.NET, η έντονη ιδιότητα του αντικειμένου γραμματοσειράς για μια ετικέτα είναι μόνο για ανάγνωση. Τόσο πώς το αλλάζεις;
Αλλαγή ιδιοτήτων γραμματοσειρών στο VB.NET με τα Windows Forms
Εδώ είναι το βασικό πρότυπο κώδικα για τα Windows Forms.
Ιδιωτική Sub BoldCheckbox_CheckedChanged (_
ByVal αποστολέας ως σύστημα. Αντικείμενο, _
ByVal e ως σύστημα. EventArgs) _
Λαβές BoldCheckbox. CheckedChanged
Αν BoldCheckbox. CheckState = CheckState. Έλεγχος Στη συνέχεια
TextToBeBold. Γραμματοσειρά = _
Νέα γραμματοσειρά (TextToBeBold. Γραμματοσειρά, FontStyle. Τολμηρός)
Αλλού
TextToBeBold. Γραμματοσειρά = _
Νέα γραμματοσειρά (TextToBeBold. Γραμματοσειρά, FontStyle. Τακτικός)
Τέλος εαν
End Sub
Υπάρχουν πολλά περισσότερα από αυτά Label1.FontBold, αυτό είναι σίγουρο. Σε .NET, οι γραμματοσειρές είναι αμετάβλητες. Αυτό σημαίνει ότι μόλις δημιουργηθούν δεν μπορούν να ενημερωθούν.
Το VB.NET σας δίνει περισσότερο έλεγχο απ 'ότι έχετε VB6 για το τι κάνει το πρόγραμμά σας, αλλά το κόστος είναι ότι πρέπει να γράψετε τον κώδικα για να αποκτήσετε αυτόν τον έλεγχο. Το VB6 θα αποσύρει εσωτερικά έναν πόρο γραμματοσειράς GDI και θα δημιουργήσει ένα νέο. Με το VB.NET, πρέπει να το κάνετε μόνοι σας.
Μπορείτε να κάνετε τα πράγματα λίγο πιο παγκόσμια προσθέτοντας μια παγκόσμια δήλωση στην κορυφή της φόρμας σας:
Ιδιωτική fBold ως νέα γραμματοσειρά ("Arial", FontStyle. Τολμηρός)
Ιδιωτική κανονική ως νέα γραμματοσειρά ("Arial", FontStyle. Τακτικός)
Στη συνέχεια μπορείτε να κωδικοποιήσετε:
TextToBeBold. Γραμματοσειρά = fBold
Σημειώστε ότι η παγκόσμια δήλωση καθορίζει τώρα την οικογένεια γραμματοσειρών Arial, αντί να χρησιμοποιεί απλώς την υπάρχουσα οικογένεια γραμματοσειρών ενός συγκεκριμένου ελέγχου.
Χρησιμοποιώντας το WPF
Τι γίνεται με το WPF; Το WPF είναι ένα γραφικό υποσύστημα που μπορείτε να χρησιμοποιήσετε με το .NET Framework για να δημιουργήσετε εφαρμογές όπου βασίζεται η διεπαφή χρήστη σε μια γλώσσα XML που ονομάζεται XAML και ο κώδικας είναι ξεχωριστός από τον σχεδιασμό και βασίζεται σε μια γλώσσα .NET όπως Visual Βασικός. Στο WPF, η Microsoft άλλαξε τη διαδικασία ξανά. Εδώ είναι ο τρόπος με τον οποίο κάνετε το ίδιο πράγμα στο WPF.
Private Sub BoldCheckbox_Checked (_
ByVal αποστολέας ως σύστημα. Αντικείμενο, _
ByVal e ως σύστημα. Windows. RoutedEventArgs) _
Λαβές BoldCheckbox. Τετραγωνισμένος
Αν BoldCheckbox. IsChecked = True Αμέσως
TextToBeBold. FontWeight = FontWeights. Τολμηρός
Αλλού
TextToBeBold. FontWeight = FontWeights. Κανονικός
Τέλος εαν
End Sub
Οι αλλαγές είναι:
- Το συμβάν CheckBox ελέγχεται αντί για CheckedChanged
- Η ιδιότητα CheckBox είναι IsChecked αντί του CheckState
- Η τιμή της ιδιότητας είναι Boolean True / False αντί του Enum CheckState. (Τα Windows Forms προσφέρουν μια ιδιότητα True / False Checked εκτός από το CheckState, αλλά το WPF δεν έχει και τα δύο.)
- Το FontWeight είναι ιδιότητα εξάρτησης της ετικέτας αντί του FontStyle που είναι ιδιοκτησία του αντικειμένου Font.
- Το FontWeights είναι μια κλάση NotInheritable και το Bold είναι μια Στατική τιμή σε αυτή την κλάση
Μπά!! Πιστεύετε ότι η Microsoft προσπάθησε πραγματικά να το κάνει πιο συγκεχυμένο;