【问题标题】:How to get displayed text from RichTextBox?如何从 RichTextBox 中获取显示的文本?
【发布时间】:2011-02-14 14:02:01
【问题描述】:

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

P.S.得到第一个显示的字符串就足够了

【问题讨论】:

    标签: c# winforms text richtextbox


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      来自eggcafe:

      " 思路是获取滚动条可见区域下的文字。

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

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

      希望这能解决或至少带你走近。 "

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

      【讨论】:

        【解决方案3】:

        您想使用 RichTextBox.GetCharIndexFromPosition()。要获取第一个可见字符的索引,请传递 RTB 客户区的左上角 new Point(0, 0)。要获取最后一个可见字符的索引,请传递 new Point(rtb.ClientSize.Width, rtb.ClientSize.Height)。 RichTextBox.Text.Substring() 然后获取所有可见文本。

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

        【讨论】:

          【解决方案4】:

          不优雅,但我认为这行得通。

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-12-18
            • 2011-08-06
            • 2018-02-16
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多