Вопрос

У меня есть форма с TextBox в этом.Каждый раз, когда текст меняется, я использую TextChanged Событие для создания PDF-файла и загрузки его в AxAcroPDF-Объект в той же форме.Это работает нормально, но затем TextBox теряет фокус, и по какой-то причине textBox.Focus() после загрузки файл не работает.

Есть у кого-нибудь идеи, как я могу сделать так, чтобы вы могли продолжать печатать, обновляя PDF-файл?

РЕДАКТИРОВАТЬ:

у меня была другая идея, я создал отдельную ветку, где я обновляю PDF и в TextChanged-событие, в котором я только устанавливаю флаг.Но теперь я получаю странную ошибку

Unable to cast COM object of type 'System.__ComObject' to interface type 'AcroPDFLib.IAcroAXDocShim'.
Это было полезно?

Решение 2

Мне так стыдно за себя, я нашел очень, очень грязный хак, но он работает...Я сделал следующее:

Когда я пишу текст в окне сообщений, я переписываю свой PDF-файл в TextChange-Event.В том же методе я сохраняю элемент управления, который имеет фокус (при вызове LoadFile для PDF-объекта этот элемент управления все равно теряет фокус).А теперь начинается грязная работа:Я реализовал поток, который постоянно устанавливает фокус на элементе управления, хранящемся в переменной.В случае выхода из текстового поля я сбрасываю переменную, чтобы другие элементы управления не блокировались.

Я знаю, это действительно грязный взлом, но теперь я могу мгновенно "редактировать" pdf-файл с помощью моей собственной формы, что приятно для глаз ;)

Спасибо за всю помощь!

Другие советы

Попробуй вот это:

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

Я не смог заставить .Focus() и .Select() работать, поэтому я использовал Jquery, и это работает отлично.

$(document).ready(function () {
    setTimeout(function () {
        $(".contentWrapper input")[0].focus();
    }, 100);
});
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top