C# richTextBox WordWrap

[Update 2022-09] WPF UserControl mit RichTextBox und WordWrap

Zeilenumbruch nach einer bestimmten Länge in einem RichtText / richTextBox,
hier nach 30 Zeichen:

var maxChars = 30; // max lenght to break line on a word add a "-"

private void richTextBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            
            try
            {
                if (richTextBox1.Lines != null && e.KeyChar != (char)Keys.Back && e.KeyChar != (char)Keys.Delete)
                {
                    var countL = richTextBox1.Lines.Count() - 1;

                    var intCharFirstOfLine = richTextBox1.GetFirstCharIndexOfCurrentLine();
                    var lineFromActualFirstChar = richTextBox1.GetLineFromCharIndex(intCharFirstOfLine);
                    var lineActuell = richTextBox1.Lines[lineFromActualFirstChar];
                    
                    if (lineActuell.Length > maxChars)
                    {
                        char lineActuellLastChar = lineActuell[(lineActuell.Length - 1)];
                        if (char.IsWhiteSpace(lineActuellLastChar) || e.KeyChar == (char)Keys.Space || e.KeyChar.ToString() == (""))
                        {
                            richTextBox1.AppendText(Environment.NewLine);
                            e.Handled = true;                            
                        }
                        else
                        {
                            richTextBox1.AppendText("-" + Environment.NewLine);                            
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("fail " + ex.ToString());
            }

        }

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert