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