Обновление PDF в форме Windows без потери фокуса - PullRequest
0 голосов
/ 22 февраля 2019

Я разрабатываю создатель PDF-файлов с использованием приложения Windows Forms в Visual Studio Community 2017. Я использую MigraDoc для создания PDF-файлов, и они непосредственно создаются серией данных, вставленных пользователем в текстовые поля.

Страница для вставки и отображения данных одинакова, потому что я хочу в режиме реального времени обновить предварительный просмотр документа PDF.Для отображения PDF я использую элемент axAcroPDF, полученный в разделе COM после установки Adobe Reader.

Чтобы обновить документ PDF, я написал класс, который просто вводит новые элементы (я используюa оставьте триггер события в текстовых полях для вызова обновления) и загрузите новый файл PDF внутри элемента axAcroPDF:

axAcroPDF1.LoadFile(filename);

Проблема заключается в том, что каждый раз, когда я вставляю новые данные в одно из текстовых полей иСобытие отпуска запускается, как будто вся форма перезагружается, и я теряю фокус на текстовое поле, над которым я писал (вставленные данные остаются, но фокус полностью теряется, а курсор записи не сохраняется).Это происходит с другими текстовыми полями, если я нажимаю на другое или использую вкладку для перехода к следующему.Обратите внимание, что PDF обновлен правильно.Есть ли способ избежать этой проблемы и обновить раздел PDF, не теряя внимания на текстовые поля?Возможно ли это сделать на слушателе события changetext для этих текстовых полей?

Вот выдержка из использования кода.Функция updateText вызывается, когда в текстовом поле обнаруживается событие changetext:

private void updateText(object sender, EventArgs e)
{
   updateDocument();
   axAcroPDF1.LoadFile(filename);
   TextBox s = (TextBox)sender;
   s.Focus();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...