HOW TO:使用 Word 中的內建對話方塊
更新:2007 年 11 月
適用於 |
---|
本主題中的資訊僅適用於指定的 Visual Studio Tools for Office 專案和 Microsoft Office 版本。 專案類型
Microsoft Office 版本
如需詳細資訊,請參閱依應用程式和專案類型提供的功能。 |
在使用 Microsoft Office Word 的時候,您有時需要顯示對話方塊讓使用者進行輸入。雖然您可以自行建立,不過也可以使用 Word 中的內建對話方塊,這些對話方塊是公開在 Application 物件的 Dialogs 集合中。您可以存取超過 200 種以上以列舉型別 (Enumeration) 表示的內建對話方塊。
若要使用內建對話方塊
使用其中一個 WdWordDialog 列舉型別的值來建立 Dialog 物件,以表示您要顯示的 Word 對話方塊。若要使用下列程式碼範例,請從專案中的 ThisDocument 或 ThisAddIn 類別 (Class) 加以執行。
Dim dlg As Word.Dialog = Application.Dialogs.Item(Word.WdWordDialog.wdDialogFileNew)
Word.Dialog dlg = Application.Dialogs[Word.WdWordDialog.wdDialogFileNew];
建立 Dialog 變數之後,您即可呼叫其方法。
dlg.Show()
object timeOut = 0; dlg.Show(ref timeOut);
若要存取對話方塊成員
取得對話方塊型別,並將 Name 屬性設定為 Testing。若要使用下列程式碼範例,請從專案中的 ThisDocument 或 ThisAddIn 類別加以執行。
注意事項: 與內建 Word 對話方塊的互動是透過晚期繫結 (Late Binding) 執行,因此,如果將 Option Strict 設定為 On,或是使用 C#,則無法直接存取這些對話方塊的成員。您必須使用 Reflection 程式庫來存取對話方塊成員。
Dim dlg As Word.Dialog = Application.Dialogs(Word.WdWordDialog.wdDialogFileOpen) Dim dlgType As Type = GetType(Word.Dialog) ' Set the Name property of the dialog box. dlgType.InvokeMember("Name", _ Reflection.BindingFlags.SetProperty Or _ Reflection.BindingFlags.Public Or _ Reflection.BindingFlags.Instance, _ Nothing, dlg, New Object() {"Testing"}, _ System.Globalization.CultureInfo.InvariantCulture)
Word.Dialog dlg = Application.Dialogs[Word.WdWordDialog.wdDialogFileOpen]; System.Type dlgType = typeof(Word.Dialog); // Set the Name property of the dialog box. dlgType.InvokeMember("Name", System.Reflection.BindingFlags.SetProperty | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance, null, dlg, new object[] {"Testing"}, System.Globalization.CultureInfo.InvariantCulture);
顯示對話方塊,然後在訊息方塊中顯示 Name 屬性。
' Display the dialog box. dlg.Show() ' Show the Name property. MessageBox.Show(dlgType.InvokeMember("Name", _ Reflection.BindingFlags.GetProperty Or _ Reflection.BindingFlags.Public Or _ Reflection.BindingFlags.Instance, _ Nothing, dlg, Nothing, _ System.Globalization.CultureInfo.InvariantCulture))
// Display the dialog box. dlg.Show(ref missing); // Show the Name property. MessageBox.Show(dlgType.InvokeMember("Name", System.Reflection.BindingFlags.GetProperty | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance, null, dlg, null, System.Globalization.CultureInfo.InvariantCulture).ToString());