Benutzer mit den meisten Antworten
Problem mit Formatierung bei Fontsize in RichTextBox

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
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
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
-
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
-
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