2017-09-02 5 views
1

J'essaie de récupérer les noms de police pour chaque ligne de texte d'un RichTextBox (chaque ligne a une police différente). Ci-dessous le code que j'utilise pour obtenir le nom de la deuxième ligne dans le RTB.Récupération du nom de police du texte sélectionné dans RichTextBox

RichTextBox2.Select(RichTextBox2.Lines(0).Length + 1, 
        RichTextBox2.Lines(1).Length) 
font = RichTextBox2.SelectionFont.Name 

Mais j'obtiens le nom de police de la première ligne de textbox. Toute aide est appréciée.

Répondre

0

Essayez d'utiliser la fonction GetFirstCharIndexFromLine pour obtenir le point de départ de chaque ligne:

For i As Integer = 0 To RichTextBox2.Lines.Count - 1 
    RichTextBox2.Select(RichTextBox2.GetFirstCharIndexFromLine(i), 
         RichTextBox2.Lines(i).Length) 
    MessageBox.Show(RichTextBox2.SelectionFont.Name) 
Next 

Voici ce que j'utilisé pour configurer le contrôle RichTextBox:

RichTextBox2.Clear() 
RichTextBox2.SelectionFont = New Font("Segoe UI", 16) 
RichTextBox2.AppendText("This is the First Line" & Environment.NewLine) 
RichTextBox2.SelectionFont = New Font("Calibri", 12) 
RichTextBox2.AppendText("This is the Second Line" & Environment.NewLine) 
RichTextBox2.SelectionFont = New Font("Arial", 16) 
RichTextBox2.AppendText("This is the Third Line" & Environment.NewLine) 
+0

obtenir encore le nom de police de première ligne . Utilisé RichTextbox2.SelectedText pour vérifier s'il sélectionne le bon texte et il l'est, mais la police ne s'affiche pas correctement. Merci – Charan

+0

@Charan J'ai testé ce code dans un RichTextBox que j'avais trois polices différentes sur trois lignes différentes et il a tout rapporté correctement. – LarsTech

+0

@Charan J'ai posté mon code d'installation. – LarsTech