C# Exponenten in RichTextBox
-
Ich möchte gerne einen Text mit einem Exponenten in einer RichTextBox darstellen. Die erste Zeile funktioniert bereits.
Nun ist der Exponent aber keine Konstante, sondern eine Variable. Das habe ich in der dritten Zeile versucht, aber das funktioniert so nicht. Wie kann ich einen String erzeugen, der die Variable a enthält?richTextBox1.SelectedRtf = @"{\rtf1\ansi This is an exponent\super 2\nosupersub . This is normal text.}"; // this works int a = 2; richTextBox1.SelectedRtf = @"{\rtf1\ansi This is an exponent\super}" + a.ToString + @"{\rtf1\ansi\nosupersub . This is normal text.}"; // this doesn't work
Ich weiss das man das auch realisieren könnte, indem man jedesmal SelectionCharOffset und SelectionFont umschaltet. Aber eigentlich finde ich die oben gezeigte Lösung viel schöner -- vorausgesetzt es gelingt irgendwie, die Variable in den String einzubinden.
Gruß
Michael
-
@micha7
Vergleich doch mal die beiden Strings, da kommt was unterschiedliches raus. Bezrachte die Zeile als eine einzige RTF-Zeile und versuch sie genauso nachzubauen. In der zweiten Zeile sind da zu viele geschweifte Klammern und Formatanweisungen.
-
Das hatte ich schon probiert. Der Compiler bemängelt, dass der + Operator nicht auf Operanden von Typ "string" und "Methodengruppe" angewendet werden kann.
-
@micha7 sagte in C# Exponenten in RichTextBox:
Wenn man für
a
den Wert 2 einsetzt kommt in Zeile 3 das hier raus:
"{\rtf1\ansi This is an exponent\super}2{\rtf1\ansi\nosupersub . This is normal text.}
Vergleich das mal mit Zeile 1
-
Wenn ich die Zeile so schreibe dass eigentlich der gleiche String rauskommen müsste, dann bemängelt der Compiler dass der + Operator nicht auf Operanden von Typ "string" und "Methodengruppe" angewendet werden kann.
richTextBox1.SelectedRtf = @"{\rtf1\ansi This is an exponent\super " + a.ToString + "\nosupersub . This is normal text.}";
-
Habe meinen saublöden Fehler gefunden. Hinter a.ToString haben die () Klammern gefehlt. Es geht jetzt.