我刚刚在 a 中实现了一个快速自动完成功能,TextBox
它从一个相当小的列表中拉出一个字符串并“完成”这个词。插入符号停留在上次按键时所在的TextBox
位置,并且用户尚未键入的单词部分将突出显示,因此开始键入其他内容将删除这部分输入。
坚持者是我需要这样,在完成和部分突出显示时,空格键用作“接受”键 - 例如它将插入符号移动到完成单词的末尾。但是,无论我似乎做什么,点击空格都会删除单词的突出显示部分(用空格字符替换它,就像你按下任何其他键一样)。
我试过这个:
private void textBoxIncidentLogTypes_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Space)
{
textBoxIncidentLogTypes.CaretIndex = textBoxIncidentLogTypes.Text.Length;
}
}
但是,虽然这“有效”,但它会在空格键破坏了短语的最佳部分后被触发。有什么方法可以在输入之前捕获按键TextBox
?