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

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

PS足以让fisrt显示字符串

您应该使用RichTextBox.GetCharIndexFromPosition( point )

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

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

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

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

来自eggcafe:

“我们的想法是将文本置于滚动条可见区域下方。

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

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

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

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

不优雅,但我觉得这很有效。

 //Force selection richTextBox.SelectAll(); //Get the selected text dataString = richTextBox.Selection.Text; 

如果您想允许用户选择文本等,这当然不起作用。