Condividi tramite


Metodo ApplicationFactory.HasVstoObject

Restituisce un valore che indica se è stato creato un elemento host Microsoft.Office.Tools.Word.Document per l'oggetto documento nativo specificato.

Spazio dei nomi:  Microsoft.Office.Tools.Word
Assembly:   Microsoft.Office.Tools.Word (in Microsoft.Office.Tools.Word.dll)
  Microsoft.Office.Tools.Word.v4.0.Utilities (in Microsoft.Office.Tools.Word.v4.0.Utilities.dll)

Sintassi

'Dichiarazione
Function HasVstoObject ( _
    document As _Document _
) As Boolean
bool HasVstoObject(
    _Document document
)

Parametri

Valore restituito

Tipo: System.Boolean
true se un elemento host Microsoft.Office.Tools.Word.Document è stato creato per l'oggetto Microsoft.Office.Interop.Word.Document specificato; in caso contrario, false.

Note

È possibile chiamare questo metodo in un componente aggiuntivo a livello di applicazione per verificare l'esistenza di controlli gestiti che si desidera salvare in modo permanente prima di chiudere o salvare il documento di Word.Per un esempio in cui viene illustrato come salvare in modo permanente i controlli in un documento di Word, vedere Word Add-In Dynamic Controls Sample.

[!NOTA]

Il parametro document è di tipo Microsoft.Office.Interop.Word._Document, che è l'interfaccia padre di Microsoft.Office.Interop.Word.Document.Pertanto, questo metodo può accettare oggetti di entrambi i tipi: Microsoft.Office.Interop.Word._Document e Microsoft.Office.Interop.Word.Document.In genere, quando si fa riferimento un documento di Word, si utilizza un oggetto Microsoft.Office.Interop.Word.Document.

Esempi

Nell'esempio di codice seguente si controlla se al documento corrente è associato un elemento host e, in tal caso, si ottiene l'elemento host.Se nel documento esistono controlli gestiti, nell'esempio viene visualizzato un messaggio di avviso che informa l'utente che i controlli gestiti non saranno salvati in modo permanente quando viene salvato il documento.In questo esempio di codice si utilizza il gestore eventi dell'evento DocumentBeforeSave per eseguire il controllo.Per utilizzare questo codice, eseguirlo dalla classe di ThisAddIn in un progetto di componente aggiuntivo di Word destinato a .NET Framework 4 o .NET Framework 4.5.

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);
        }
    }
}

Sicurezza di .NET Framework

Vedere anche

Riferimenti

ApplicationFactory Interfaccia

Spazio dei nomi Microsoft.Office.Tools.Word

Altre risorse

Estensione in fase di esecuzione di documenti di Word e di cartelle di lavoro di Excel in componenti aggiuntivi a livello di applicazione

Programmazione delle personalizzazioni a livello di documento

Word Add-In Dynamic Controls Sample