【发布时间】:2011-02-14 14:02:01
【问题描述】:
如何在 RichTextBox 中显示文本? 我的意思是,如果 RichTextBox 滚动到最后,我只想接收那些对我可见的行。
P.S.得到第一个显示的字符串就足够了
【问题讨论】:
标签: c# winforms text richtextbox
如何在 RichTextBox 中显示文本? 我的意思是,如果 RichTextBox 滚动到最后,我只想接收那些对我可见的行。
P.S.得到第一个显示的字符串就足够了
【问题讨论】:
标签: c# winforms text richtextbox
查看通过 SendMessage API 函数发送消息 EM_GETFIRSTVISIBLELINE。
【讨论】:
来自eggcafe:
" 思路是获取滚动条可见区域下的文字。
您需要通过控件的TextHeight 属性找出richtextbox 的高度并确定文本的高度。将控件的高度除以文本的高度。
由此,您可以确定richtextbox 控件中可以容纳的最大行数。
希望这能解决或至少带你走近。 "
取自 http://www.eggheadcafe.com/community/aspnet/2/10073516/how-to-select-the-visible.aspx
【讨论】:
您想使用 RichTextBox.GetCharIndexFromPosition()。要获取第一个可见字符的索引,请传递 RTB 客户区的左上角 new Point(0, 0)。要获取最后一个可见字符的索引,请传递 new Point(rtb.ClientSize.Width, rtb.ClientSize.Height)。 RichTextBox.Text.Substring() 然后获取所有可见文本。
如有必要,您可以使用 RichTextBox.GetLineFromCharIndex() 将字符索引转换为行号。
【讨论】:
不优雅,但我认为这行得通。
//Force selection
richTextBox.SelectAll();
//Get the selected text
dataString = richTextBox.Selection.Text;
如果您想允许用户选择文本等,这当然行不通。
【讨论】: