如何从RichTextBox获取显示的文本?

时间:2010-05-01 15:36:58

标签: c# winforms text richtextbox

如何在RichTextBox中获取显示文本? 我的意思是如果RichTextBox滚动到最后,我只想收到那些对我来说可见的行。

P.S.这将足以让fisrt显示字符串

4 个答案:

答案 0 :(得分:6)

您应该使用RichTextBox.GetCharIndexFromPosition( point )

要获取第一个可见字符的索引,请将new Point(0, 0)(RTB客户区的左上角)作为 point 参数传递。
要获取最后一个可见字符的索引,请将new Point(rtb.ClientSize.Width, rtb.ClientSize.Height)作为 point 参数传递。

然后,您可以使用RichTextBox.Text.Substring()获取所有可见文字。

如有必要,您可以使用RichTextBox.GetLineFromCharIndex()将字符索引转换为行号。

答案 1 :(得分:0)

通过SendMessage API函数发送消息EM_GETFIRSTVISIBLELINE。

答案 2 :(得分:0)

来自eggcafe:

” 我们的想法是将文本放在滚动条可见区域下。

您需要找出richtextbox的高度,并使用控件的TextHeight属性确定文本的高度。将控件的高度除以文本的高度。

这样,您可以确定richtextbox控件中可以容纳的最大行数。

希望这可以解决或至少带你到附近。 “

取自 http://www.eggheadcafe.com/community/aspnet/2/10073516/how-to-select-the-visible.aspx

答案 3 :(得分:0)

不优雅,但我认为这很有效。

//Force selection 

richTextBox.SelectAll();

//Get the selected text

dataString = richTextBox.Selection.Text;

如果您想允许用户选择文字等,这当然无效。