Я использую японский IME в качестве примера, но, вероятно, он аналогичен на других языках, которые используют IME для ввода.C# и IME - получение текущего текста ввода
Когда пользователь вводит текст в текстовое поле с использованием IME, запускаются события KeyDown и KeyUp. Однако свойство TextBox.Text не возвращает введенный текст, пока пользователь не проверит вход в IME с помощью клавиши Enter.
Так, например, если пользователь вводит 5 раз あ, то проверяет, я получу 5 событий keydown/keyup, каждый раз, когда TextBox.Text возвращает «" (пустая строка), а в конце я получу keydown/keyup для ключа ввода, а TextBox.Text будет непосредственно «あ あ あ あ あ».
Как я могу получить ввод пользователя во время ввода пользователем, прежде чем пользователь проверит его в конце?
(я знаю, как сделать это в JavaScript на < ввода > поля на веб-странице, так что это должно быть возможно в C#!)
Это в окнах? Если да, вы можете перехватить WM_IME_COMPOSITION Messsage и использовать ImmGetCompositionString для ввода пользователя. – Dian