Pregunta

Tengo un formulario con un TextBox en eso.Cada vez que el texto cambia utilizo el TextChanged Evento para crear un archivo PDF y cargarlo en un AxAcroPDF-Objeto en la misma Forma.Esto funciona bien, pero luego el TextBox pierde el foco y por alguna razón el textBox.Focus() después de cargar el archivo no funciona.

¿Alguien tiene alguna idea de cómo puedo hacer que puedas seguir escribiendo mientras actualizas el PDF?

EDITAR:

Tuve otra idea, hice un hilo separado donde actualizo el PDF y en el TextChanged-evento solo puse una bandera.Pero ahora recibo un error extraño.

Unable to cast COM object of type 'System.__ComObject' to interface type 'AcroPDFLib.IAcroAXDocShim'.
¿Fue útil?

Solución 2

Estoy tan avergonzado de mí mismo que encontré un truco muy, muy sucio, pero funciona...Hice lo siguiente:

Cuando escribo un texto en el cuadro de mensajes, reescribo mi PDF en el evento TextChange.En el mismo método, almaceno el Control que tiene el foco (cuando invoco LoadFile en el Objeto PDF, este Control aún pierde el foco).Y ahora viene el trabajo sucio:Implementé un Thread que constantemente pone el foco en el Control almacenado en la variable.En el evento de salida del cuadro de texto, restablezco la variable para que no se bloqueen otros controles.

Es un truco realmente sucio, lo sé, pero ahora puedo "editar" instantáneamente un pdf con mi propio formulario, lo cual es un atractivo visual;)

¡Gracias por toda la ayuda!

Otros consejos

Prueba este:

textBox.Select();
textBox.Focus();

No pude hacer que .Focus() y .Select() funcionaran, así que usé Jquery y funciona perfectamente.

$(document).ready(function () {
    setTimeout(function () {
        $(".contentWrapper input")[0].focus();
    }, 100);
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top