Я мог бы, наконец, до смешного простой ответ. До сих пор в тестировании это работает.
Пострадавший от этой проблемы в течение довольно долгого времени и создавший сложную систему каждой пользовательской записи управления, из которой последний раз фокусировался и используя таймер, чтобы откидывать назад (когда acropdf схватил его). Я повторно рассмотрел эту проблему и прочитал большое количество ответов (поиск последних решений). Полученная информация помогла мне с этой идеей.
Идея заключается в том, чтобы отключить (AcroPDF) управление в то время как он погрузка, в следующем примере (код уменьшенное для ясности)
AxAcroPDF_this.Enabled = False AxAcroPDF_this.src = m_src
Затем по таймеру, скажем, 1 секунду.
AxAcroPDF_this.Enabled = False
В принципе идея заключается в том, чтобы сказать Windows, чтобы не позволить пользователям использовать контроль AcroPDF пока не разрешено, так просить Windows, чтобы предотвратить его попадание фокуса (поскольку пользователи не могут там) ,
Пока это держится, я отредактирую это, если что-нибудь изменится. Если это не работает полностью для вас, то, возможно, идея указывает на полезное направление.
+1 для краткого ответа, хотя конкретный приемлемый взлом не сработал для меня (исключить событие + TextBox вместо события LostFocus в ListBox) - я попробовал другое предлагаемое решение, которое очень сильно фигурирует в ответах на вопросы axAcroPDF + focus в Интернете - с помощью таймера и активации его сразу после вызова AxAcroPDF.LoadFile, установки фокуса обратно в форму внутри обработчика события Tick и дезактивации таймера сразу после этого. –