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
如果已經為指定的 Microsoft.Office.Interop.Word.Document 物件建立 Microsoft.Office.Tools.Word.Document 主項目,則為 true,否則為 false。

備註

您可以在應用程式層級增益集中呼叫這個方法,測試您要在關閉或儲存 Word 文件之前保存的 Managed 控制項是否存在。 如需示範如何在 Word 文件中保存控制項的範例,請參閱 Word Add-In Dynamic Controls Sample

注意事項注意事項

document 參數的型別是 Microsoft.Office.Interop.Word._Document,此為 Microsoft.Office.Interop.Word.Document 的父介面。 因此,這個方法可以接受這兩種型別的物件:Microsoft.Office.Interop.Word._DocumentMicrosoft.Office.Interop.Word.Document。 通常在參考 Word 文件時,您會使用 Microsoft.Office.Interop.Word.Document

範例

下列程式碼範例會檢查目前的文件是否有關聯的主項目,有的話則會取得該主項目。 如果 Managed 控制項存在於文件中,這個範例會顯示警告訊息告知使用者,在儲存文件時不會保存該 Managed 控制項。 這個程式碼範例會使用 DocumentBeforeSave 事件的事件處理常式來執行該項檢查。 若要使用這個程式碼,請在以 .NET Framework 4 為目標的 Word 增益集專案中,從 ThisAddIn 類別執行。

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