开发者

.NET - Long Line in RichTextBox Wrapped after 3,510 Characters

I have a RichTextBox in a WInForms program that is wrapping any line that is longer than 3,510 characters. I have WordWrap set to false, so all lines under that length extend normally without wrapping. What I used to do to get around this was to set RightMargin to a high number such as 100,000, which still works, but now that I am on Windows 7 and not XP, I get a scroll bar that scrolls as though the text box had lines of that large length, when it doesn't.

To replicate, just create a winforms program with a RichTextBox and Button. In the button's click event, put the following:

        StringBuilder 开发者_StackOverflow中文版sb = new StringBuilder();
        for (int i = 0; i < 3511; i++)
            sb.Append('A');
        richTextBox1.Text = sb.ToString();

After you see the wrapping, change the RightMargin of the text box to 100000, and notice the scrollbar that appears even before running the program (only on 7 and probably Vista). The line no longer wraps, but I want the scrollbar to only act on the text in the box, and not some pre-determined length.


You could set the rightmargin of the richTextBox to the width of the string? Like this

richTextBox1.RightMargin = 
TextRenderer.MeasureText(sb.ToString(), this.richTextBox1.Font).Width;
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜