如何获得整个字符串在插入符号的位置进入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;
我该怎么办?
如果您使用 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版本中可用。