Я только что реализовал функцию быстрого автозаполнения в TextBox
, которая вытягивает строку из довольно небольшого списка и «дополняет» слово. Каретка TextBox
остается в том месте, где она находилась после последнего нажатия клавиши, и часть слова, которую пользователь еще не набрал, становится подсвеченной, так что начало ввода чего-то другого удалит этот раздел ввода.
Важно то, что мне нужно, чтобы после завершения и выделения частей клавиша пробела работала как клавиша «принять» - например, она перемещала бы курсор в конец законченного слова. Однако, что бы я ни делал, удар пробелом удаляет выделенную часть слова (заменяя ее пробелом, как если бы вы нажимали любую другую клавишу).
Я пробовал это:
private void textBoxIncidentLogTypes_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Space)
{
textBoxIncidentLogTypes.CaretIndex = textBoxIncidentLogTypes.Text.Length;
}
}
Но хотя это «работает», оно срабатывает после , пробел уничтожил лучшую часть фразы. Есть ли способ зафиксировать нажатие до того, как оно будет напечатано в TextBox
?