Lettertype-eigenschappen wijzigen in VB.NET

click fraud protection

Vet is "alleen-lezen" in VB.NET. Dit artikel vertelt je hoe je dat kunt veranderen.

In VB6 was het heel eenvoudig om een ​​lettertype in vet te veranderen. Je hebt zoiets gecodeerd Label1.FontBold, maar in VB.NET is de eigenschap Bold van het Font-object voor een Label alleen-lezen. Dus hoe verander je het?

Lettertype-eigenschappen wijzigen in VB.NET met Windows Forms

Hier is het basiscodepatroon voor Windows Forms.

Private Sub BoldCheckbox_CheckedChanged (_
ByVal-afzender als systeem. Voorwerp, _
ByVal e als systeem. EventArgs) _
Handvatten Vet Checkbox. Gecontroleerd Gewijzigd
Als BoldCheckbox. CheckState = CheckState. Vervolgens gecontroleerd
TextToBeBold. Lettertype = _
Nieuw lettertype (TextToBeBold. Lettertype, FontStyle. Stoutmoedig)
Anders
TextToBeBold. Lettertype = _
Nieuw lettertype (TextToBeBold. Lettertype, FontStyle. Regelmatig)
Stop als
Einde Sub

Er is veel meer dan Label1.FontBold, dat is zeker. In .NET zijn lettertypen onveranderlijk. Dat betekent dat als ze eenmaal zijn gemaakt, ze niet kunnen worden bijgewerkt.

instagram viewer

VB.NET geeft je meer controle dan je krijgt VB6 over wat uw programma doet, maar de kosten zijn dat u de code moet schrijven om die controle te krijgen. VB6 zal intern één GDI-lettertypebron verwijderen en een nieuwe maken. Met VB.NET moet je het zelf doen.

U kunt de zaken een beetje globaler maken door een algemene verklaring bovenaan uw formulier toe te voegen:

Private fBold As New Font ("Arial", FontStyle. Stoutmoedig)
Private fNormal As New Font ("Arial", FontStyle. Regelmatig)

Dan kun je coderen:

TextToBeBold. Lettertype = fBold

Merk op dat de algemene declaratie nu de lettertypefamilie, Arial, specificeert in plaats van simpelweg de bestaande lettertypefamilie van één specifiek besturingselement te gebruiken.

WPF gebruiken

Hoe zit het met WPF? WPF is een grafisch subsysteem dat u kunt gebruiken met .NET Framework om applicaties te bouwen waar de gebruikersinterface op is gebaseerd op een XML-taal genaamd XAML en de code staat los van het ontwerp en is gebaseerd op een .NET-taal zoals Visual Basic. In WPF heeft Microsoft het proces opnieuw gewijzigd. Hier is de manier waarop u hetzelfde doet in WPF.

Private Sub BoldCheckbox_Checked (_
ByVal-afzender als systeem. Voorwerp, _
ByVal e als systeem. Ramen. RoutedEventArgs) _
Handvatten Vet Checkbox. Gecontroleerd
Als BoldCheckbox. IsChecked = Waar dan
TextToBeBold. FontWeight = FontWeights. Stoutmoedig
Anders
TextToBeBold. FontWeight = FontWeights. Normaal
Stop als
Einde Sub

De wijzigingen zijn:

  • De CheckBox-gebeurtenis is aangevinkt in plaats van CheckedChanged
  • De eigenschap CheckBox is IsChecked in plaats van CheckState
  • De eigenschapswaarde is een Booleaanse waarde True / False in plaats van de Enum CheckState. (Windows Forms biedt naast CheckState een True / False Checked-eigenschap, maar WPF heeft niet beide.)
  • FontWeight is een afhankelijkheidseigenschap van het Label in plaats van dat FontStyle de eigenschap is van het Font-object.
  • FontWeights is een NotInheritable-klasse en Vet is een statische waarde in die klasse

Whew!! Denk je dat Microsoft heeft geprobeerd het verwarrender te maken?

instagram story viewer