如何将整个字符串放在插入符号位置的RichTextBox中?

时间:2014-06-06 19:06:50

标签: c# richtextbox

我正在使用Visual Studio 2008,并且似乎没有CaretPosition函数进入richtextbox propreties。 如何在插入位置获得整行? 例如,我写了这个:

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

我该怎么办? 提前谢谢。

2 个答案:

答案 0 :(得分:2)

如果您使用 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)方法返回插入符号的行号。

答案 1 :(得分:0)

从.NET Framework 3.0版开始,大多数情况下一个RichTextBox.CaretPosition属性。