Benutzer mit den meisten Antworten
Zeilenlänge einer RichTextBox

Frage
-
Hi,
ich versuche gerade eine RichTextBox als eine Art Konsolenoutput zu benutzen. Ich möchte jetzt zeilenweise Text ausgeben, der je nach Loglevel verschieden eingefärbt ist, was auch soweit funktioniert, allerdings wird immer nur der Text eingefärbt und nicht die komplette Zeile bis zum Ende.
Gibt es eine Möglichkeit, die Zeilenlänge zu berechnen / auszulesen? Dann könnte ich den Rest der Zeile mit Leerzeichen füllen o.ä.
Danke,
Oliver
Antworten
-
Hi, Robert,
ebenfalls danke für die Info. So wie ich das sehe, gibt es keine saubere Möglichkeit, es sei denn, ich fange an, die TextBox erst zu füllen, dann zu schauen, wie lang die erste Zeile ist und dann den Text wieder zu löschen.
Oder ich rechne über die Font metrics aus, wieviel rein passt ;)
http://msdn.microsoft.com/en-us/library/xwf9s90b.aspx
Grüße,
Oliver
- Bearbeitet Robert Breitenhofer Mittwoch, 24. März 2010 17:10 Hyperlink als Hyperlink
- Als Antwort vorgeschlagen Robert Breitenhofer Mittwoch, 24. März 2010 17:12
- Als Antwort markiert Robert Breitenhofer Freitag, 29. Oktober 2010 15:34
Alle Antworten
-
Hallo Oliver,
erstens gibt es für die RichTextBox das Property MaxLength (gibt die maximale Anzahl der Zeichen an die eingegeben werden können) und zweitens kannst Du mitint text = richTextBox1.Text.Length;
die Zeichenlänge deiner Eingabe bestimmen. Mit beiden Angaben sollte deine Berechnung möglich sein.
Gruß
Oliver- Bearbeitet Robert Breitenhofer Freitag, 12. März 2010 08:19 Formatierung
-
Hallo Oliver,
Folgender Code Schnipsel ergibt die Länge jeder Zeile eines RichTextBoxes Steuerelement.
Vielleicht hilft dir das Beispiel auch.
richTextBox1.Text = "AAAAAAAAAAAAABBBBBBBBCCCCCCCCCCC" + Environment.NewLine + "Line2string"; int totalLines = richTextBox1.Lines.Length; //string lastLine = richTextBox1.Lines[totalLines - 1]; //Letzte Zeile als String int[] lengths = new int[totalLines]; for (int i = 0; i <= totalLines - 1; i++) { lengths[i] = richTextBox1.Lines[i].Length; }
Grüße,Robert
-
Hi, Oliver,
danke für die Info, aber sowie ich das verstehe ist die MaxLength die Anzahl Zeichen insgesamt, nicht pro Zeile.
Mit
int text = richTextBox1.Text.Length;
bekomme ich die Länge des momentan enthaltenen Textes, was mir dann auch leider nicht weiter hilft.
Grüße,
Oliver
-
Hi, Robert,
ebenfalls danke für die Info. So wie ich das sehe, gibt es keine saubere Möglichkeit, es sei denn, ich fange an, die TextBox erst zu füllen, dann zu schauen, wie lang die erste Zeile ist und dann den Text wieder zu löschen.
Oder ich rechne über die Font metrics aus, wieviel rein passt ;)
http://msdn.microsoft.com/en-us/library/xwf9s90b.aspx
Grüße,
Oliver
- Bearbeitet Robert Breitenhofer Mittwoch, 24. März 2010 17:10 Hyperlink als Hyperlink
- Als Antwort vorgeschlagen Robert Breitenhofer Mittwoch, 24. März 2010 17:12
- Als Antwort markiert Robert Breitenhofer Freitag, 29. Oktober 2010 15:34