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