【发布时间】:2015-08-25 23:29:52
【问题描述】:
我在 RichEditBox 上实现了一个查找功能,执行时将搜索 query 并选择 RichEditBox 中找到的文本:
String^ docText;
currentRichEditBox->Document->GetText(Text::TextGetOptions::None, &docText);
start = currentRichEditBox->Document->Selection->EndPosition;
end = docText->Length();
int result = newRange->FindText(query, end-start, Text::FindOptions::None);
if (result != 0)
{
currentRichEditBox->Document->Selection->SetRange(newRange->StartPosition, newRange->EndPosition);
}
这很有效,因为找到的文本被正确选择。但是,对于内容长到可以滚动的 RichEditBox,它将在屏幕外,并且 RichEditBox 不会滚动以使其显示。然而,奇怪的是,如果重新运行此代码,那么它将滚动查看先前的结果。比如下面的文字:
这是一个测试
[画面结束]
1 顶帽子
2 顶帽子
当我的代码搜索 hat 时,它会成功突出显示单词 hat 的第一个实例。但是,RichEditBox 不会向下滚动到它,即使它不在屏幕上。第二次运行代码时,它将突出显示第二个实例并将屏幕向下滚动到单词 hat 的第一个实例。
我假设 RichEditBox 的代码中存在导致此问题的错误。是否有任何编程方式可以手动滚动 RichEditBox 或其隐式 ScrollViewer 以显示插入符号?
【问题讨论】:
-
@WiredPrairie 谢谢,这正是我想要的。
标签: windows-runtime win-universal-app scrollviewer richeditbox