创建自定义文本编辑器和设计器

Visual Studio 集成 (IDE)开发环境 (ide) 可以承载编辑器的其他类型:

  • Visual Studio 核心编辑器

  • 自定义编辑器

  • 外部编辑器

  • 设计器

以下信息帮助您选择需要编辑的类型。

编辑的类型

有关 Visual Studio 核心编辑器的信息,请参见 扩展编辑器

自定义编辑器

自定义编辑器是在专用的光的工程实践的一个。 例如,可以创建功能读写数据到特定储存库的一个编辑器,例如基于埃克斯钱吉塞尔韦尔。 选择自定义编辑器,如果希望只项类型一起使用的编辑器,或者您希望只具有几个特定命令的编辑器。 然而,请注意,用户无法使用自定义编辑器来编辑标准 Visual Studio 项目。

自定义编辑器可以使用编辑工厂并添加有关编辑器的信息添加到注册表中。 但是,项目类型与通过自定义编辑器无法实例化自定义编辑器用其他方法。

自定义编辑器可以使用实现视图的任何就地激活或简化的嵌入。

外部编辑器

外部编辑器是集成到 Visual Studio 中,如 Microsoft Word、记事本或 Microsoft FrontPage 的编辑器。 ,则,例如,通过文本给它从 VSPackage,可以调用这样的编辑器。 外部编辑寄存器和可在 Visual Studio 之外使用。 当您调用外部编辑器时,因此,它在宿主窗口中嵌入,然后它会显示在 IDE 的窗口。 否则, IDE 会创建它的一个单独的窗口。

使用 VSDOCUMENTPRIORITY 枚举, IsDocumentInProject 方法设置文档属性。 如果 DP_External 值指定,文件中外部编辑器中打开。

编辑设计决策

以下设计问题有助于选择编辑器的类型最适合于应用程序:

  • 应用程序是否将保存其文件中的数据? 如果它将保存其文件中的数据,它们在自定义或标准格式?

    如果使用标准文件格式,而不是项目以外的其他项目类型可以将其打开和读/写数据。 ,但是,如果您使用自定义文件格式,只有项类型可以将其打开和读/写数据。

    如果项目使用文件,则应自定义标准编辑。 如果该项目在数据库不使用文件,,而是使用项目或其他储存库,则应创建自定义编辑器。

  • 编辑器是否需要承载 Activex 控件?

    如果编辑器承载 Activex 控件,如 就地激活所述,请实现一个就地激活编辑,。 如果未承载 Activex 控件,请使用一个简化的嵌入的编辑器或自定义 Visual Studio 默认编辑器。 有关更多信息,请参见Document Windows and Editors  

  • 编辑器是否支持多个视图? ,如果您希望编辑器的视图是显示在默认编辑器的同时,您必须支持多个视图。

    如果编辑器需要支持多视图,文档数据和文档编辑器的视图对象必须是单独的对象。 有关更多信息,请参见 支持多文档视图

    如果编辑器支持多视图,还是计划为使用 Visual Studio 核心编辑器中的文本缓冲区实现 (VsTextBuffer 对象) 文档数据对象? 即是否希望并行支持编辑视图。 Visual Studio 核心编辑器? 此功能就是窗体设计器的基类型。

  • 如果需要承载外部编辑器,该编辑器可以嵌入在 Visual Studio内?

    如果可以嵌入到时,您应创建一个外部编辑器的宿主窗口然后调用 IsDocumentInProject 方法和设置 VSDOCUMENTPRIORITY 枚举值。 DP_External。 如果无法嵌入编辑器, IDE 将自动创建它的一个单独的窗口。

本节内容

相关章节

请参见

参考

IVsEditorFactory