[英]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.