C# richTextBox设置不自动换行,但是单行长度超过4096字节时,还是会自动分多行显示

求不分行显示的设置方法,或单行长度限制的具体原因或属性。
代码很简单,首先设置richtextbox1.wordwarp= false,代码如下:
string all = "";
private void button1_Click(object sender, EventArgs e)
{
string temp = "";

        for (int i = 0; i <4096; i++)
        {
            temp = temp + "D";
        }
        all = all + temp;
        this.richTextBox1.Text = all;           
    }
            如上:如果长度大于4096会自动分多行显示。

不一定是4096,和字体的大小相关。
没有发现有属性可以直接读写这个值。

不过可以借助TextRenderer.MeasureText取得字符串的实际宽度,并设置richTextBox1.RightMargin等于此值。
这样就可以单行显示4096个字符。

richTextBox1.RightMargin = 
      TextRenderer.MeasureText(all.ToString(), this.richTextBox1.Font).Width;//all就是你代码中的字符串。

这个问题前几天有人问过。因为C#的richtextbox只是对windows的riched32.dll的一个封装,而后者存在限制,所以C#也无可奈何。你可以使用别的控件代替。老外有非常专业的编辑控件,基本上可以代替word了。你可以google下。