none
Problem mit Formatierung bei Fontsize in RichTextBox RRS feed

  • Frage

  • Hallo,

    ich habe eine Combobox mit den Schriftarten ein Combox für Schriftgröße dazu habe ich eine Anweisung geschrieben:


    Private Sub ComboBoxEdit1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBoxEdit1.SelectedIndexChanged, ComboBoxEdit2.SelectedIndexChanged
        If Not ComboBoxEdit1.Text.Equals("") AndAlso Not ComboBoxEdit2.Text.Equals("") Then
          RichTextBox1.SelectionFont = New Font(ComboBoxEdit1.Text, Convert.ToSingle(ComboBoxEdit2.Text))
        End If
      End Sub


    nun wenn ich jetzt Arial und Größe 12 auswählen oder anderen Größen und Schriftarten funktioniert alles, das Problem ist ich nehme zB das Wort testen formatiere es in Fett, Kursiv und unterstrichen, das macht er auch ändere ich jetzt die Größe von testen ist die Formatierung Fett, Kursiv und Unterstrichen weg.

    Was mache ich dabei verkehrt oder hat jemand eine Lösung dafür?

     

    LG

    Ryan

    Dienstag, 21. Juni 2011 12:23

Antworten

  • Hallo Ryan,

    die Sachen zusammengestöpselt sähe das in etwa so aus:

    If ComboBoxEdit1.Text <> "" AndAlso ComboBoxEdit2.Text <> "" Then
     RichTextBox1.SelectionFont = New Font(ComboBoxEdit1.Text, _
               Convert.ToSingle(ComboBoxEdit2.Text), _
               RichTextBox1.SelectionFont.Style, _
               RichTextBox1.SelectionFont.Unit)
    End If
    
    

    Gruß Elmar

    • Als Antwort markiert Ryan Shasta Dienstag, 21. Juni 2011 14:09
    Dienstag, 21. Juni 2011 13:58
    Beantworter

Alle Antworten

  • Hallo Ryan,

    die Schriftauszeichnungen sind auch Bestandteil des Fonts.
    Um die vorherigen Werte zu übernehmen, verwende die SelectionFont-Eigenschaft.

    Siehe auch Thorstens Beispiel in Schriftgrösse in RichTextBox via ListBox

    BTW: Den Vergleich darfst Du einfacher (und lesbarer) schreiben als:

    If ComboBoxEdit1.Text <> "" AndAlso ComboBoxEdit2.Text <> "" Then
    

    Gruß Elmar

    Dienstag, 21. Juni 2011 12:47
    Beantworter
  • Hallo Elmar

    der komplette Code sieht so aus:

     

     'Schriftarten laden'

        Private Sub main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

            Dim fonts As New System.Drawing.Text.InstalledFontCollection()

            Dim familie As FontFamily() = fonts.Families

            For Each f As FontFamily In familie.Where(Function(family) family.IsStyleAvailable(FontStyle.Regular))

                ComboBoxEdit1.Properties.Items.Add(f.Name)

            Next

            For Each no As Integer In Enumerable.Range(8, 65)

                ComboBoxEdit2.Properties.Items.Add(no)

            Next

            ComboBoxEdit1.SelectedIndex = 21

            ComboBoxEdit2.SelectedIndex = ComboBoxEdit2.Properties.Items.IndexOf(12)

        End Sub

        'Schriftart in Richtextbox'

        Private Sub ComboBoxEdit1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBoxEdit1.SelectedIndexChanged, ComboBoxEdit2.SelectedIndexChanged

            If Not ComboBoxEdit1.Text.Equals("") AndAlso Not ComboBoxEdit2.Text.Equals("") Then

                RichTextBox1.SelectionFont = New Font(ComboBoxEdit1.Text, Convert.ToSingle(ComboBoxEdit2.Text))

            End If

        End Sub

    Wo muss ich da etwas ändern?

     

    LG

    Ryan

    Dienstag, 21. Juni 2011 13:04
  • Hallo Ryan,

    die Sachen zusammengestöpselt sähe das in etwa so aus:

    If ComboBoxEdit1.Text <> "" AndAlso ComboBoxEdit2.Text <> "" Then
     RichTextBox1.SelectionFont = New Font(ComboBoxEdit1.Text, _
               Convert.ToSingle(ComboBoxEdit2.Text), _
               RichTextBox1.SelectionFont.Style, _
               RichTextBox1.SelectionFont.Unit)
    End If
    
    

    Gruß Elmar

    • Als Antwort markiert Ryan Shasta Dienstag, 21. Juni 2011 14:09
    Dienstag, 21. Juni 2011 13:58
    Beantworter
  • Hallo Elmar,

     

    danke wieder was dazu gelernt.

    LG

    Ryan

    Dienstag, 21. Juni 2011 14:09