Je n'arrive pas à ajuster le style de police dans un RichTextBox et j'ai vu quelques approches différentes qui parlent d'attributs simples (comme activer ou désactiver le gras) ... mais j'essaie de faire en sorte que ma classe de police puisse ajuster n'importe quel attribut (gras, italique, souligné).Ajustement du style de police pour un RichTextBox dans vb.net
Je me rends compte que Font.Style est un ensemble de drapeaux booléens (un bitfield?) ... mais je ne sais pas comment gérer les attributs en même temps.
Voici le code gênant:
Public Sub ModifyFontStyle(Optional ByVal Plain As Object = Nothing, Optional ByVal Bold As Object = Nothing, _
Optional ByVal Italics As Object = Nothing, Optional ByVal Underlined As Object = Nothing)
Dim newFontStyle As System.Drawing.FontStyle
If Plain Then
newFontStyle = Drawing.FontStyle.Regular
GivenFont = New Drawing.Font(GivenFont.FontFamily, GivenFont.Size, newFontStyle)
Exit Sub
End If
If Bold IsNot Nothing Then
If Bold Then
newFontStyle = GivenFont.Style + Drawing.FontStyle.Bold
Else
newFontStyle = GivenFont.Style - Drawing.FontStyle.Bold
End If
End If
If Italics IsNot Nothing Then
If Italics Then
newFontStyle = GivenFont.Style + Drawing.FontStyle.Italic
Else
newFontStyle = GivenFont.Style - Drawing.FontStyle.Italic
End If
End If
If Underlined IsNot Nothing Then
If Underlined Then
newFontStyle = GivenFont.Style + Drawing.FontStyle.Underline
Else
newFontStyle = GivenFont.Style - Drawing.FontStyle.Underline
End If
End If
GivenFont = New Drawing.Font(GivenFont.FontFamily, GivenFont.Size, newFontStyle)
End Sub
Et voici le problème éventuel avec ce code:
- I basculer gras (true) - le texte va gras.
- Je bascule souligné - le texte est maintenant en gras et souligné.
- Je bascule en italique - le texte est maintenant en gras, souligné et en italique.
- Je bascule de nouveau en gras (à false) - le texte est maintenant barré.
Qu'est-ce qui arrive à la police? Le texte doit être souligné et en italique non barré ...
Est-ce une erreur de logique ou un simple malentendu de ma part?
Eh bien, je vous remercie de votre temps, je vais continuer à bricoler avec elle jusqu'à ce qu'il fonctionne ou je reçois une réponse qui fonctionne,
J'ai compris ce que je devais faire: vérifier l'attribut spécifique que j'ajuste et l'empêcher d'être ajouté au style de police plus d'une fois. Je posterai la réponse à cette question dans un petit moment. – Dominick
Signe est supprimé, S'il vous plaît consulter la FAQ. –