none
Zeilenlänge einer RichTextBox RRS feed

  • 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
    Donnerstag, 11. März 2010 16:18

Antworten

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 mit 
    int text = richTextBox1.Text.Length;
    die Zeichenlänge deiner Eingabe bestimmen. Mit beiden Angaben sollte deine Berechnung möglich sein.

    Gruß
    Oliver
    Donnerstag, 11. März 2010 16:35
  • 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

    Freitag, 12. März 2010 08:17
  • 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

    Samstag, 20. März 2010 16:43
  • 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

    Samstag, 20. März 2010 16:45