Поделиться через


ApplicationFactory.HasVstoObject - метод

Возвращает значение, указывающее, был ли создан ведущий элемент Microsoft.Office.Tools.Word.Document для указанного собственного объекта документа.

Пространство имен:  Microsoft.Office.Tools.Word
Сборка:  Microsoft.Office.Tools.Word (в Microsoft.Office.Tools.Word.dll)

Синтаксис

'Декларация
Function HasVstoObject ( _
    document As _Document _
) As Boolean
bool HasVstoObject(
    _Document document
)

Параметры

Возвращаемое значение

Тип: System.Boolean
Возвращает true, если ведущий элемент Microsoft.Office.Tools.Word.Document был создан для собственного объекта Microsoft.Office.Interop.Word.Document; в противном случае возвращается false.

Заметки

Этот метод можно вызывать в надстройке уровня приложения для проверки существования управляемых элементов управления, которые требуется сохранить перед закрытием или сохранении документа Word. Пример, в котором демонстрируется сохранение элементов управления в документе Word, см. в разделе Word Add-In Dynamic Controls Sample.

Примечание

Параметр document является типом Microsoft.Office.Interop.Word._Document, который является родительским интерфейсом Microsoft.Office.Interop.Word.Document).Следовательно, этот метод может принимать объекты обоих типов: Microsoft.Office.Interop.Word._Document и Microsoft.Office.Interop.Word.Document.Как правило, когда необходимо сослаться на документ Word, используется объект Microsoft.Office.Interop.Word.Document.

Примеры

В приведенном ниже примере кода проверяется, существует ли для текущего документа связанный ведущий элемент, и если такой элемент существует, он возвращается. Если в документе имеются управляемые элементы управления, в примере выводится предупреждение о том, что такие элементы управления не будут сохранены при сохранении элемента. В данном примере кода для выполнения подобной проверки используется обработчик событий DocumentBeforeSave. Чтобы воспользоваться этим кодом, выполните его из класса ThisAddIn в проекте надстройки Word, предназначенном для .NET Framework 4.

Private Sub Application_DocumentBeforeSave( _
    ByVal Doc As Microsoft.Office.Interop.Word.Document, _
    ByRef SaveAsUI As Boolean, _
    ByRef Cancel As Boolean) Handles Application.DocumentBeforeSave

    If Globals.Factory.HasVstoObject(Doc) = True Then
        Dim vstoDoc As Document = Globals.Factory.GetVstoObject(Doc)
        If vstoDoc.Controls.Count > 0 Then
            System.Windows.Forms.MessageBox.Show( _
                "The VSTO controls are not persisted when you save this document.", _
                "Controls Persistence", _
                System.Windows.Forms.MessageBoxButtons.OK, _
                System.Windows.Forms.MessageBoxIcon.Warning)
        End If
    End If
End Sub
void Application_DocumentBeforeSave(
    Microsoft.Office.Interop.Word.Document Doc, ref bool SaveAsUI, 
    ref bool Cancel)
{
    if (Globals.Factory.HasVstoObject(Doc) == true)
    {
        Document vstoDoc = Globals.Factory.GetVstoObject(Doc);
        if (vstoDoc.Controls.Count > 0)
        {
            System.Windows.Forms.MessageBox.Show(
                "The VSTO controls are not persisted when you save this document.",
                "Controls Persistence",
                System.Windows.Forms.MessageBoxButtons.OK,
                System.Windows.Forms.MessageBoxIcon.Warning);
        }
    }
}

Безопасность платформы .NET Framework

См. также

Ссылки

ApplicationFactory Интерфейс

Microsoft.Office.Tools.Word - пространство имен

Другие ресурсы

Расширение документов Word и книг Excel в надстройках уровня приложения во время выполнения

Получение вложенных объектов из собственных объектов Office в настройках уровня документа

Word Add-In Dynamic Controls Sample