2
如果我拖動(回到前面)選擇RichTextBox中的文本,則Selection.Text與實際選擇相匹配。 但是,如果我拖動(從前到後)在同一個RichTextBox中選擇文本,則Selection.Text爲總是爲空字符串。RichTextBox Selection.Text不正確
我需要這些信息的原因是,在重新解析(這涉及清除所有文本並重新填充它)RichTextBox中的文本後,我需要將插入符號返回到原始位置。
我的目標是獲得選擇開始的偏移量。我可以使用它來獲取一個停止在那裏的字符串,我將在解析結束時使用它替換插入符號。
if (String.IsNullOrWhiteSpace(Selection.Text))
restartPosition = activeRun.ContentStart.GetOffsetToPosition(CaretPosition.GetInsertionPosition(LogicalDirection.Forward));
else
restartPosition = activeRun.ContentStart.GetOffsetToPosition(Selection.Start);
關鍵在於'if'語句。如果沒有選擇,我可以使用文本指針指定光標所在的位置。如果有選擇,我需要它的開始。具有諷刺意味的是,如果它在另一個方向上失敗了,那就不成問題了。
有沒有一種方法來準確地檢索選擇?微軟的實施似乎有點不妥。
所以明顯的問題是,我該如何解決這個問題? – Greg
什麼語言和框架?例如:C#,Java,Objective-C? .Net,Android,iOS等? –
WPF .Net 4.0中的C#。還要注意,這是在RichTextBox的OnPreviewKeyDown事件期間。 – Greg