演练:创建向导

更新:2007 年 11 月

向导(例如“外接程序向导”)是用来引导用户通过一系列操作以实现一些复杂的、重复性的或较难的任务的程序。例如,Windows 使用向导连接网络资源和连接打印机等。

在 Visual Studio 中,向导通常会询问一系列问题,请求用户输入答案,然后利用这些结果生成代码。但是,向导并不总是显示用户界面 (UI)。可以对向导进行编程,从而以不可见方式在后台生成代码。

有三种不同类型的向导。

  • 新建项目向导 — 顾名思义,此类向导用于为特殊类型的项目生成新代码,为用户提供一个起始点,用户可以在此基础上添加自己的代码。这是最常用类型的向导。

  • “添加新项”向导 — 此类向导用于向项目中添加新项,例如 Web 窗体、文本文件、HTML 页和 XML 页等。

  • 自定义向导 — 此类向导不是从对话框中调用的,而是从外接程序、宏或其他类型的代码中直接调用的。此类向导可能显示也可能不显示用户界面。不论哪种情况都会生成代码。通常,这种类型的向导使用得最少。

不论哪种类型的向导,都具有一些共同的特点。

  • 它们都是 .NET 对象,可实现 IDTWizard 界面,并且具有关联的方法 Execute,此方法包含您希望向导运行的代码。

  • 它们都使用 .vsz 文件以将其自身显示在 Visual Studio 中。

  • 它们都生成代码或执行其他任务。

您可以在创建的向导中自定义元素的外观。向导通常由一个或多个窗口或页面组成。页面可包括描述性图像(如放在页面的顶部或左侧)、标签说明、指令以及可放置导航控件的区域,其中导航控件是指像“上一页”和“下一页”这样的控件。

在 Visual C++ 中创建向导的过程与创建标准 Visual Studio 向导稍有不同。有关创建适用于 Visual C++ 的向导的更多其他信息,请参见设计向导创建自定义向导

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

显示的对话框和菜单命令可能会与“帮助”中描述的不同,具体取决于当前的设置或版本。这些过程是使用现用的常规开发设置开发的。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 Visual Studio 设置

基本向导示例

Visual Studio 外接程序向导

此图片显示了“外接程序向导”的一个面板,即一个“新建项目”类型的向导,它引导您通过一系列步骤创建一个外接程序。您可以自定义向导的外观,但“外接程序向导”是标准类型向导的一个典型示例。完成的向导就成为“新建项目”或“添加新项”复选框中的可用模板。

以下内容演示如何创建基本向导,并赋予其一个自定义图标(可选)。

使用 Visual Basic 和 Visual C# 创建基本向导

  1. 创建一个名为 MyNewWizard 的新类库项目。

  2. 向项目中添加对 EnvDTEEnvDTE80 的引用。

    为此,右击该项目,然后单击“添加引用”。在“添加引用”对话框的“.NET”选项卡中,单击“EnvDTE”和“EnvDTE80”,然后单击“确定”。

  3. 在类模块中,将引用添加到 EnvDTEEnvDTE80,并实现 IDTWizard 接口。对于本 Visual C# 示例,您还必须添加对 System.Windows.Forms 的引用。

    Imports EnvDTEImports EnvDTE80
    Public Class Class1
        Implements IDTWizard
    
    using System;
    using System.Collections.Generic;
    using System.Text;
    using EnvDTE;using EnvDTE80;using Windows.System.Forms;
    
    namespace MyNewWizard
    {
        public class Class1 : IDTWizard
        {
        }
    }
    

    当将 Implements 语句添加到 Visual Basic 时,将光标置于行的结尾,按 Enter 以自动创建 Execute 方法过程。但是对于 Visual C#,则必须手动添加 Execute 过程:

    public class Class1 : IDTWizard
        {
        public void Execute(object Application,         int hwndOwner, ref object[] contextParams,         ref object[] customParams,         ref EnvDTE.wizardResult retval)
    
  4. 将您希望向导运行的代码添加到 Execute 过程。对于本示例,我们将仅添加一个简单的消息框。

    您将具有以下对象:

    Imports EnvDTE
    Imports EnvDTE80
    
    Public Class Class1
        Implements IDTWizard
    
        Public Sub Execute(ByVal Application As Object, ByVal _
        hwndOwner As Integer, ByRef ContextParams() As Object, ByRef _
        CustomParams() As Object, ByRef retval As EnvDTE.wizardResult) _
        Implements EnvDTE.IDTWizard.Execute
            MsgBox("The wizard is now running.")
        End Sub
    End Class 
    
    using System.Text;
    using EnvDTE;
    using EnvDTE80;
    using System.Windows.Forms;
    
    namespace MyNewWizardCS
    {
        public class Class1 : IDTWizard
        {
    
        public void Execute(object Application, 
            int hwndOwner, ref object[] contextParams, 
            ref object[] customParams, 
            ref EnvDTE.wizardResult retval)
        {
            MessageBox.Show("The wizard is now running.");
        }
    }
    
    }
    

    Execute 过程在向导启动时调用。

  5. 对于 Visual Basic,右击“解决方案资源管理器”中的项目,单击“属性”打开“项目属性”页,单击“编译”选项卡,然后选中页面底部的“为 COM Interop 注册”框。

    不必对 Visual C# 执行此步骤。

  6. 通过单击“生成”菜单上的“生成解决方案”,生成项目以创建类库 DLL。

  7. 为名为 MyNewWizard.vsz 的向导创建一个 .vsz 文本文件。

    为此,单击“文件”,指向“新建”,然后单击“文件”。

    .vsz 文件是一个文本文件,它使 Visual Studio 能够识别向导,并在“新建项目”或“添加新项”对话框中显示该向导。Wizard 参数应该设置为项目的 progID (Project.Classname) 或设置为 GUID。有关更多信息,请参见配置 .Vsz 文件来启动向导

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

    (可选)您也可以为向导创建一个 VSDir 文件。此文件中包含的信息将在“添加新项目”或“添加新文件”对话框中显示为对向导的说明。该文件也使您可以在列表中指定图标和安排图标的位置。有关更多信息,请参见使用 .Vsdir 文件为“添加项”和“新建项目”对话框添加向导

  8. 将以下内容添加到 MyNewWizard.vsz:

    VSWizard 7.0
    Wizard=MyNewWizard.Class1
    Param=First Item
    Param=Second Item
    
  9. 将新的 .vsz 文件保存在您希望向导所在的目录中。

    对于本示例,我们希望向导位于 Visual Basic 项目的“添加新项”对话框中,因此将 .vsz 文件保存在以下目录中:<驱动器>:\Program Files\Microsoft Visual Studio 8\VB\VBProjectItems。

  10. 退出 Visual Studio,然后重新启动。

    这将强制 Visual Studio 读取新的 .vsz 文件。

  11. 创建一个新 Visual Basic 项目,例如 Windows Application 项目。

  12. 右击该项目,指向“添加项”,然后单击“新建项”。

    在“添加新项”对话框中应可看见新向导 (MyNewWizard)。

  13. 单击该向导,然后单击“添加”按钮。

    您将看到消息“向导正在运行。”

为新向导显示自定义图标

  • 在保存向导文件的同一目录中,放置一个与 .dll 文件具有相同基名称但扩展名为 .ico 的图标文件。

    例如,如果向导名为 MyNewWizard.dll,则将 .ico 文件命名为 MyNewWizard.ico。

    - 或 -

  • 如果已创建一个 VSDir 文件,则在该文件中指定到该图标文件 (.ico) 的路径。

请参见

任务

如何:创建外接程序

概念

自动化对象模型图表

使用 .Vsdir 文件为“添加项”和“新建项目”对话框添加向导

配置 .Vsz 文件来启动向导

参考

IDTWizard

Visual Studio 命令和开关

其他资源

创建外接程序和向导