mrt*_*ndi 11 richtextbox autosize winforms
有谁知道如何动态地将RichTextBox控件调整为其内容?
小智 10
我想我太迟了但是看看这个
这只是两个代码行:
private void rtb_ContentsResized(object sender, ContentsResizedEventArgs e)
{
((RichTextBox)sender).Height = e.NewRectangle.Height + 5;
}
Run Code Online (Sandbox Code Playgroud)
再假设一个固定的字体,你可以这样做:
using (Graphics g = CreateGraphics())
{
richTextBox.Height = (int)g.MeasureString(richTextBox.Text,
richTextBox.Font, richTextBox.Width).Height;
}
Run Code Online (Sandbox Code Playgroud)
这是一种痛苦 - C# RichTextBox 使用起来常常令人沮丧。您是否正在尝试将框设置得足够大以容纳其内容而无需任何滚动条?
如果 RichTextBox 具有恒定字体,则可以使用 TextRenderer.MeasureText 来简单地测量所需的大小,并传入框的宽度作为约束。
ContentsResized 事件为您提供一个 ContentsResizedEventsArgs,它为您提供一个 NewRectangle,告诉您文本区域有多大。但它仅在文本更改时触发,如果您只想测量现有的 Richtextbox,则它没有那么有用(尽管您可能只是做一些黑客操作,例如将框的文本设置为自身,触发此事件)。
还有一堆 Win32 api 调用,例如使用 EM_GETLINECOUNT ( http://ryanfarley.com/blog/archive/2004/04/07/511.aspx ) 等。
| 归档时间: |
|
| 查看次数: |
13493 次 |
| 最近记录: |