要求1、根据文字长度而Richtextbox自动改变长度
2、可以回车换行,但第二行的长度比第一行的长度长度时候,Richtextbox长度就发生变化。
3、当换行到第二行时,光标可以回到第一行,继续编辑文字,一旦文字长度超过第二上Richtextbox长度就发生变化。请求代码或给予提示,小弟不胜感激!

解决方案 »

  1.   

    可以先设置WordWrap=false;不允许自动换行。
    然后根据Richtextbox的Lines中的内容判断该行输入字符的长度,如果超过了Richtextbox的Width,重新调整Width。
      

  2.   

    private void richTextBox1_TextChanged(object sender, EventArgs e)
            {
                string[] str = this.richTextBox1.Lines;
                float textLenth = str[str.Length - 1].Length * this.richTextBox1.Font.Size;
                if (textLenth > this.richTextBox1.Size.Width)
                    this.richTextBox1.Width = (int)textLenth;
            }
    可以实现,不过大小还需要精确控制一下.
      

  3.   

    上面只是判断了最后一行的长度,准确的应该是取最长行的长度。要精确控制的话,好像有点难度:字体的单位是磅,而控件的Width是像素。