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也是?