Estoy utilizando el IME japonés como ejemplo, pero probablemente sea el mismo en otros idiomas que usan un IME para la entrada.C# e IME - obteniendo el texto de entrada actual
Cuando el usuario escribe texto en un cuadro de texto utilizando el IME, se activan los eventos KeyDown y KeyUp. Sin embargo, la propiedad TextBox.Text no devuelve el texto escrito hasta que el usuario haya validado la entrada en el IME utilizando la tecla Intro.
Entonces, por ejemplo, si el usuario escribe 5 veces あ valida, obtendré 5 eventos de keydown/keyup, con cada vez que TextBox.Text devuelva "" (la cadena vacía) y al final obtendré una clave/keyup para la tecla enter y TextBox.Text se convertirá directamente en "あ あ あ あ あ".
¿Cómo puedo obtener la entrada del usuario mientras el usuario está escribiendo, antes de que el usuario valide al final?
(sé cómo hacer esto en javascript en un campo > < de entrada en una página web, por lo que debe ser posible en C#!)
¿Está en windows? En caso afirmativo, puede interceptar el Messsage WM_IME_COMPOSITION y usar ImmGetCompositionString para obtener la entrada del usuario. – Dian