Question

J'ai un formulaire avec un TextBox dedans.Chaque fois que le texte change, j'utilise le TextChanged Événement pour créer un fichier PDF et le charger dans un AxAcroPDF-Objet sous la même forme.Cela fonctionne bien, mais alors le TextBox perd sa concentration et pour une raison quelconque, le textBox.Focus() après le chargement du fichier, cela ne fonctionne pas.

Quelqu'un a-t-il une idée de la façon dont je peux faire en sorte que vous puissiez continuer à taper tout en actualisant le PDF ?

MODIFIER:

j'ai eu une autre idée, j'ai créé un fil de discussion séparé où je mets à jour le PDF et dans le TextChanged-événement, je n'ai mis qu'un drapeau.Mais maintenant j'obtiens une erreur étrange

Unable to cast COM object of type 'System.__ComObject' to interface type 'AcroPDFLib.IAcroAXDocShim'.
Était-ce utile?

La solution 2

J'ai tellement honte de moi, j'ai trouvé un hack vraiment très sale, mais ça marche...J'ai fait ce qui suit :

Lorsque j'écris un texte dans la MessageBox, je réécris mon PDF dans le TextChange-Event.Dans la même méthode, je stocke le contrôle qui a le focus (lors de l'appel du LoadFile sur l'objet PDF, ce contrôle perd toujours le focus).Et maintenant vient le sale boulot :J'ai implémenté un Thread qui définit constamment le focus sur le contrôle stocké dans la variable.Dans l'événement Leave de TextBox, j'ai réinitialisé la variable afin que les autres contrôles ne soient pas bloqués.

C'est un hack vraiment sale, je sais, mais maintenant je peux instantanément "éditer" un pdf avec mon propre formulaire, ce qui est un joli régal pour les yeux ;)

Merci pour votre aide!

Autres conseils

Essaye celui-là:

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

Je n'ai pas pu faire fonctionner .Focus() et .Select(), j'ai donc utilisé Jquery et cela fonctionne parfaitement.

$(document).ready(function () {
    setTimeout(function () {
        $(".contentWrapper input")[0].focus();
    }, 100);
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top