如何:使用 Word 中的内置对话框

更新:2007 年 11 月

适用对象

本主题中的信息仅适用于指定的 Visual Studio Tools for Office 项目和 Microsoft Office 版本。

项目类型

  • 文档级项目

  • 应用程序级项目

Microsoft Office 版本

  • Word 2003

  • Word 2007

有关更多信息,请参见按应用程序和项目类型提供的功能

使用 Microsoft Office Word 时,有时需要显示用户输入对话框。虽然可以创建自己的对话框,您也许还希望采用使用 Word 中内置对话框的方法,这些对话框在 Application 对象的 Dialogs 集合中公开。这使您能够访问 200 个以上的内置对话框,它们以枚举的形式表示。

使用内置对话框

  1. 使用 WdWordDialog 枚举的某个值来创建 Dialog 对象,该对象表示要显示的 Word 对话框。若要使用以下代码示例,请从项目内的 ThisDocument 或 ThisAddIn 类中运行它。

    Dim dlg As Word.Dialog = Application.Dialogs.Item(Word.WdWordDialog.wdDialogFileNew)
    
    Word.Dialog dlg = Application.Dialogs[Word.WdWordDialog.wdDialogFileNew];
    
  2. 创建 Dialog 变量之后即可调用其方法。

    dlg.Show()
    
    object timeOut = 0;
    dlg.Show(ref timeOut);
    

访问对话框成员

  1. 获取对话框类型,并将 Name 属性设置为 Testing。若要使用以下代码示例,请从项目内的 ThisDocument 或 ThisAddIn 类中运行它。

    ahzbkf8e.alert_note(zh-cn,VS.90).gif说明:

    与 Word 内置对话框的交互是通过后期绑定进行的,所以如果您已将 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);
    
  2. 显示对话框,然后在一个消息框中显示 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());
    

请参见

任务

如何:在隐藏模式下使用 Word 对话框

概念

Word 对象模型概述

了解 Office 解决方案中的可选参数