我有一个.NET UWP文本框,有很多文本,我想搜索它中的一个单词。当我点击按钮开始搜索时,它会找到这个词的第一个出现。当我再次点击时,它会发现第二个,如记事本中的ctrl + f)。UWP文本框 - 专注于选择
我想把重点放在找到的世界上,但是当文本足够长以至于有一个滚动条时,它不会将找到的单词放入视图中。
这是在这种状态下屏幕的屏幕抓图,显示了如何调整窗口大小以查看找到的单词。
这里是我的搜索代码(textarea
是TextBox类型):
private void Find(string text)
{
textarea.Focus(FocusState.Programmatic);
var start = textarea.SelectionStart + textarea.SelectionLength;
var found = (bool)checkboxFindCaseSensitive.IsChecked ? textarea.Text.IndexOf(text, start) : textarea.Text.IndexOf(text, start, StringComparison.CurrentCultureIgnoreCase);
if (found == -1)
{
textarea.SelectionStart = 0;
found = (bool)checkboxFindCaseSensitive.IsChecked ? textarea.Text.IndexOf(text, start) : textarea.Text.IndexOf(text, start, StringComparison.CurrentCultureIgnoreCase);
if (found == -1) return;
}
textarea.SelectionStart = found;
textarea.SelectionLength = text.Length;
}
我已经试图把textarea.Focus(FocusState.Programmatic);
在方法的结束以及textarea.Focus(FocusState.Pointer);
,但是没有帮助。
UPDATE:
我发现它的聚焦准确,但到最后发现字(到位置,在光标之前找到下一个单词),而不是目前发现的字。
所以我需要更新的重点目前SelectionStart
,别到最后。有任何想法吗?我已经尝试再次更改SelectionStart
,替换文本并更新布局 - 没有任何帮助。
可以使用Richeditbox – lindexi
我想要Textbox。 –