ApplicationFactory.HasVstoObject 方法
傳回值,這個值表示是否已經為指定的原生文件物件建立 Microsoft.Office.Tools.Word.Document 主項目。
命名空間: Microsoft.Office.Tools.Word
組件: Microsoft.Office.Tools.Word (在 Microsoft.Office.Tools.Word.dll 中)
Microsoft.Office.Tools.Word.v4.0.Utilities (在 Microsoft.Office.Tools.Word.v4.0.Utilities.dll 中)
語法
'宣告
Function HasVstoObject ( _
document As _Document _
) As Boolean
bool HasVstoObject(
_Document document
)
參數
- document
型別:Microsoft.Office.Interop.Word._Document
要測試的原生文件物件。雖然這個參數的型別為 Microsoft.Office.Interop.Word._Document,您通常會傳遞 Microsoft.Office.Interop.Word.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._Document 和 Microsoft.Office.Interop.Word.Document。通常在參考 Word 文件時,您會使用 Microsoft.Office.Interop.Word.Document。 |
範例
下列程式碼範例會檢查目前的文件是否有關聯的主項目,有的話則會取得該主項目。 如果 Managed 控制項存在於文件中,這個範例會顯示警告訊息告知使用者,在儲存文件時不會保存該 Managed 控制項。 這個程式碼範例會使用 DocumentBeforeSave 事件的事件處理常式來執行該項檢查。 使用這個程式碼、請從 ThisAddIn 類別在 Word 增益集專案的目標 .NET Framework 4 或 .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);
}
}
}
.NET Framework 安全性
- 完全信任立即呼叫者。這個成員無法供部分信任的程式碼使用。如需詳細資訊,請參閱從部分受信任程式碼使用程式庫。
請參閱
參考
Microsoft.Office.Tools.Word 命名空間