HOW TO:使用 Word 中的內建對話方塊
在使用 Microsoft Office Word 的時候,您有時需要顯示對話方塊讓使用者進行輸入。 雖然您可以自行建立,不過也可以使用 Word 中的內建對話方塊,這些對話方塊是公開在 Application 物件的 Dialogs 集合中。 您可以存取超過 200 種以上以列舉型別 (Enumeration) 表示的內建對話方塊。
**適用於:**本主題中的資訊適用於 Word 2007 和 Word 2010 的文件層級專案和應用程式層級專案。如需詳細資訊,請參閱依 Office 應用程式和專案類型提供的功能。
顯示對話方塊
若要顯示對話方塊,請使用其中一個 WdWordDialog 列舉值來建立 Dialog 物件,以表示您要顯示的對話方塊。 然後,呼叫 Dialog 物件的 Show 方法。
下列程式碼範例示範如何顯示 [開啟舊檔] 對話方塊。 若要使用這個範例,請從專案中的 ThisDocument 或 ThisAddIn 類別中執行。
Dim dlg As Word.Dialog = Application.Dialogs.Item(Word.WdWordDialog.wdDialogFileOpen)
dlg.Show()
Word.Dialog dlg = Application.Dialogs[Word.WdWordDialog.wdDialogFileOpen];
dlg.Show();
存取透過晚期繫結使用的對話方塊成員
Word 中對話方塊的部分屬性和方法只能透過晚期繫結才能使用。 在開啟 Option Strict 的 Visual Basic 專案或目標為 .NET Framework 3.5 的 Visual C# 專案,您必須使用反映才能存取這些成員。 如需詳細資訊,請參閱 Office 方案中的晚期繫結。
下列程式碼範例示範如何在關閉 Option Strict 的 Visual Basic 專案或目標為 .NET Framework 4 的 Visual C# 專案中,使用 [開啟舊檔] 對話方塊的 Name 屬性。 若要使用這個範例,請從專案中的 ThisDocument 或 ThisAddIn 類別中執行。
Private Sub TestDynamicDialog()
Dim dialog As Word.Dialog = Application.Dialogs(Word.WdWordDialog.wdDialogFileOpen)
dialog.Name = "Testing"
dialog.Show()
MessageBox.Show(dialog.Name)
End Sub
dynamic dialog = Application.Dialogs[Word.WdWordDialog.wdDialogFileOpen];
dialog.Name = "Testing";
dialog.Show();
MessageBox.Show(dialog.Name);
下列程式碼範例示範如何在開啟 Option Strict 的 Visual Basic 專案或目標為 .NET Framework 3.5 的 Visual C# 專案中,使用反映存取 [開啟舊檔] 對話方塊的 Name 屬性。 若要使用這個範例,請從專案中的 ThisDocument 或 ThisAddIn 類別中執行。
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)
' 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))
Word.Dialog dialog = Application.Dialogs[Word.WdWordDialog.wdDialogFileOpen];
System.Type dialogType = typeof(Word.Dialog);
// Set the Name property of the dialog box.
dialogType.InvokeMember("Name",
System.Reflection.BindingFlags.SetProperty |
System.Reflection.BindingFlags.Public |
System.Reflection.BindingFlags.Instance,
null, dialog, new object[] { "Testing" },
System.Globalization.CultureInfo.InvariantCulture);
// Display the dialog box.
dialog.Show(ref missing);
// Show the Name property.
MessageBox.Show(dialogType.InvokeMember("Name",
System.Reflection.BindingFlags.GetProperty |
System.Reflection.BindingFlags.Public |
System.Reflection.BindingFlags.Instance,
null, dialog, null,
System.Globalization.CultureInfo.InvariantCulture).ToString());