.NET – RichTextBox中的长行包含在3,510个字符之后

我在WInForms程序中有一个RichTextBox,它包装任何超过3,510个字符的行。 我将WordWrap设置为false,因此该长度下的所有行都会正常延伸而不会换行。 我过去常常做的就是将RightMargin设置为高数,例如100,000,这仍然有效,但是现在我在Windows 7而不是XP上,我得到一个滚动条,就像文本框那样滚动如果没有那么长的那条线。

要复制,只需使用RichTextBox和Button创建一个winforms程序。 在按钮的单击事件中,输入以下内容:

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

看到包装后,将文本框的RightMargin更改为100000,并注意甚至在运行程序之前出现的滚动条(仅在7和Vista上)。 该行不再包装,但我希望滚动条仅作用于框中的文本,而不是某些预定长度。

您可以将richTextBox的rightmargin设置为字符串的宽度? 像这样

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