如何在RichTextBox中获取显示文本? 我的意思是如果RichTextBox滚动到最后,我只想收到那些对我来说可见的行。
P.S.这将足以让fisrt显示字符串
答案 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;
如果您想允许用户选择文字等,这当然无效。