Заблокируйте документ word и откройте модальное диалоговое окно над документом. - PullRequest
1 голос
/ 11 октября 2011

В приложении Windows Forms мне нужно открыть текстовый документ и скрыть основную форму, а над текстовым документом мне нужно открыть модальное диалоговое окно.Когда отображается модальное диалоговое окно, слово должно быть отключено, что означает, что пользователь не может прокручивать, или масштабировать, или писать что-то в документе.Документ будет контролироваться модальным диалогом.

Теперь я использую функцию из user32.dll, с помощью которой я устанавливаю родительский процесс для модального диалога, чтобы при скрытии основной формы модальнаядиалоговое окно останется видимым.

[DllImport("user32.dll")]
public static extern IntPtr SetParent(IntPtr child, IntPtr newParent);

Проблема в том, что, если я открою модальное диалоговое окно с помощью Show() или ShowModal(), у меня все равно может быть доступ к текстовому документу, и если я открою его с помощью ShowDialog(), форма в некотором роде интегрирована в документ, и я не могу щелкнуть ее или сфокусировать.

Может кто-нибудь сказать мне, как я могу заблокировать документ Word и при этом иметь доступ к модальному диалогу??

Может ли помочь функция Office.Interop.Word?

Ответы [ 2 ]

0 голосов
/ 12 октября 2011

Я думаю, что лучшим решением было бы написать Word-Addin, но это будет много работы, и может оказаться невозможным для вас в данный момент.

Я думаю, что вторым лучшим решением будет скрыть Word, когда вы показываете модальное диалоговое окно.

0 голосов
/ 12 октября 2011

То, что вы описываете, - это не путь ... чтобы достичь того, что вам нужно, вам нужно внедрить Office AddIn вместо приложения WinForms ... для пошагового руководства, включая исходный код, о том, как это сделать, смотрите http://msdn.microsoft.com/en-us/library/bb157892.aspx

РЕДАКТИРОВАТЬ - согласно комментариям:

Другим вариантом может быть рендеринг документа Word в PDF-файл и отображение этого ... для редактирования документа Word вы можете использовать OpenXML от MS (бесплатно) и / или Aspose.Words (коммерческая) или аналогичная библиотека ...

...