如何获得整个字符串在插入符号的位置进入RichTextBox

本文关键字:位置 RichTextBox 符号 插入 何获得 字符串 | 更新日期: 2023-09-27 18:07:02

我使用的是Visual Studio 2008,似乎没有CaretPosition函数到richtextbox属性。我怎么能得到整个行在插入符号的位置?例如,我这样写:

              show databases;
              show tables;/* (the caret (|) is flashing just here so after pressing a button i want to display "show tables"*/
              show functions; 

我该怎么办?

如何获得整个字符串在插入符号的位置进入RichTextBox

如果您使用 WPF :

        TextPointer caretPos = rtb.CaretPosition;
        TextPointer start=caretPos.GetLineStartPosition(0);
        TextPointer end = (caretPos.GetLineStartPosition(1) != null ? caretPos.GetLineStartPosition(1) : caretPos.DocumentEnd);
        TextRange tr = new TextRange(start, end);
        MessageBox.Show(tr.Text);

GetLineStartPosition(0)返回位置为当前行起始的TextPointer对象。GetLineStartPosition(1)返回位置在下一行开始的TextPointer对象。

如果插入符号放在最后一行,caretPos.GetLineStartPosition(1)将返回null。您可以使用caretPos.DocumentEnd .

来修复此问题。


如果你正在使用WinForms:

        string[] lines = rtb.Lines;
        MessageBox.Show(lines[rtb.GetLineFromCharIndex(rtb.SelectionStart)]);

rtb.GetLineFromCharIndex(rtb.SelectionStart)方法返回插入符号所在行号。

肯定有一个RichTextBox。CaretPosition属性在。net Framework 3.0版本中可用。