vb.net Как предотвратить блокирование немодальной формы с помощью диалогового окна модального инструмента в ArcMap? - PullRequest
1 голос
/ 29 марта 2012

У меня есть проект vb.net, работающий как расширение панели инструментов в ArcMap. Каждый из моих инструментов открывает модальное диалоговое окно с помощью метода .ShowDialog (). Мой клиент хочет иметь возможность открывать PDF-документ из инструментов, которые будут служить инструментом справочной документации, а не традиционным методом, таким как HTMLHelp или средство просмотра справки Windows.
Итак, я импортировал Interop.AcroPDFLib.dll и настроил форму с объектом AxAcroPDF (veiwer). Каждый раз, когда пользователь нажимает кнопку справки в любом из диалоговых окон инструмента, форма справки открывается с помощью .Show () и переходит на связанную страницу документа с помощью метода .setCurrentPage. До этого момента все прекрасно работало.

Однако, как вы можете себе представить, поскольку диалоговое окно инструмента является модальным, оно блокирует возможность пользователя взаимодействовать с формой PDF. Итак, мне нужна техника предотвращения этого блока, чтобы пользователь мог прокручивать страницы, щелкать ссылки в PDF и т. Д., Пока открыто диалоговое окно инструмента. Т.е. мне нужно решение, которое будет имитировать использование традиционной HTMLHelp veiwer.

Я пытался открыть форму PDF в новом потоке, но это приводит к сбою ArcMap в Application.Run (New PDFForm). Возможно, это потому, что у меня очень мало опыта работы с многопоточностью, или, может быть, потому что ArcMap не поддерживает многопоточность. Не уверен.

В любом случае, любые предложения, которые помогут мне начать, будут очень оценены.

...