.NET - длинная строка в RichTextBox, заключенная после 3510 символов

У меня есть RichTextBox в программе WInForms, которая переносит любую строку, длина которой превышает 3510 символов. У меня WordWrap установлен на false, поэтому все строки меньше этой длины растягиваются нормально без переноса. Чтобы обойти это, я установил для RightMargin большое число, например 100000, которое все еще работает, но теперь, когда я использую Windows 7, а не XP, я получаю полосу прокрутки, которая прокручивается, как если бы в текстовом поле было строки такой большой длины, когда это не так.

Чтобы воспроизвести, просто создайте программу winforms с RichTextBox и Button. В событии нажатия кнопки поместите следующее:

        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < 3511; i++)
            sb.Append('A');
        richTextBox1.Text = sb.ToString();

После того, как вы увидите обтекание, измените RightMargin текстового поля на 100000 и обратите внимание на полосу прокрутки, которая появляется еще до запуска программы (только в 7 и, возможно, Vista). Строка больше не переносится, но я хочу, чтобы полоса прокрутки действовала только на текст в поле, а не на некоторую заранее заданную длину.

7
задан Jeffrey Harmon 27 December 2010 в 20:33
поделиться