繁体   English   中英

如何将插入符位置的整个字符串导入RichTextBox?

[英]How to get entire string at line of caret position into RichTextBox?

我使用的是Visual Studio 2008,似乎RichTextbox属性中没有CaretPosition函数。 我怎样才能使整个行都在插入符位置? 例如,我写了这个:

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

我能怎么做? 提前致谢。

如果您使用的是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修复此caretPos.DocumentEnd


如果您使用的是WinForms

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

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

从.NET Framework 3.0版开始,肯定可以使用RichTextBox.CaretPosition属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM