首页 新闻 会员 周边 捐助

RichTextBox根据内容自动调整高度

0
悬赏园豆:30 [已关闭问题]

RichTextBox根据内容调整高度

大家好!
     最近在做一个显示对话框,用的是C#Winform中的RichTextbox控件,现在碰到一个问题,RichTextBox不能根据内容自动调整高度,宽度自己设置。
以前失败的做法:
1 。this.RichTextBox.GetLineFromCharIndex(StrContent.Length)来获得行号,在乘上文本的字体高度就是当前RichTextBox的高度,没有达到想要的结果。
2.   rtb.CreateGraphics().MeasureString(StrContent, rtb.Font).Width / width;来获取文本的行数,结果也失败了。

private void addRichTextBox(int x, int y,int width,int height,string context,bool isrtf)
        {
            RichTextBox rtb = new RichTextBox();
            rtb.Location = new System.Drawing.Point(x, y);
            //rtb.Name = "choose";
            rtb.Size = new System.Drawing.Size(width, height);
            rtb.BorderStyle = System.Windows.Forms.BorderStyle.None;
         
            if (!isrtf)
            {
                rtb.Text = context;
            }
            else
            {
                rtb.Rtf = context;
            }
            this.panel1.Controls.Add(rtb);
            
        }
这是动态添加RichTextBox的代码,我想要实现的是能根据传入的Context参数来设计RichTextBox的高度而不要显示垂直滚动条。
大家有没有什么好的方法?

还有什么办法能够禁用panel的水平滚动条而只保留垂直滚动条,WinForm也是?
cjpx84的主页 cjpx84 | 初学一级 | 园豆:170
提问于:2010-05-23 10:20
< >
分享
其他回答(1)
0

你上面的第二个方法不行吗,根据传入字符串的长度和每行字符大小计算出它的高度。

Astar | 园豆:40805 (高人七级) | 2010-05-24 07:04
是的,发现计算出来的行数跟实际显示的行数不一样,垂直滚动条还是出现了。
支持(0) 反对(0) cjpx84 | 园豆:170 (初学一级) | 2010-05-26 00:48
0

请问博主怎么解决的?

#天空# | 园豆:238 (菜鸟二级) | 2016-03-25 14:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册