Aquí vengo con la imagen.
Siguiendo con el ejemplo anterior, supongamos que en la tabla de equivalencias tengo lo siguiente:
Código Palabra
skdj Hoy
kd4i9 3934f d1 tallarines
dkfj3 comer
dk3339j voy a
Si del dispositivo de entrada se fueran a enviar a la pc los códigos correspondientes a la frase "Hoy voy a comer tallarines", la cosa quedaría así.
Se recibiría el código para "Hoy", se agregaría al list, se buscaría la correspondencia en la base de datos y se escribiría esa correspondencia (en este caso, la palabra "Hoy") en el richtextbox, seguida de un espacio. Luego pasaría lo mismo con el resto de la frase.
Hasta aquí está hecho y funciona bien.
Una vez hecho esto, si yo pongo el cursor en la palabra "comer", debiera seleccionarse en el list el elemento correspondiente, tal como se muestra en la imagen:

Por eso pensaba que si podía agregar a cada palabra que incorpore en el richtextbox (o el webbrowser, de acuerdo a la recomendación de Leandro) un identificador, éste podría ser el index del elemento del list. Entonces, cuando pusiera el cursor en una palabra, de alguna manera debiera poder conocer el identificador y así saber cuál es el elemento del list que se debe seleccionar.
Por favor, díganme si de esta manera es más claro o si debo especificar algo más.
Muchas gracias.