使用“打开文件”命令显示文件
以下步骤介绍了 IDE 如何处理 Visual Studio 的“文件”菜单上提供的“打开文件”命令。 这些步骤还介绍了项目应如何响应源自此命令的调用。
当用户单击“文件”菜单上的“打开文件”命令并从“打开文件”对话框中选择文件时,将发生以下过程:
使用正在运行的文档表,IDE 确定文件是否已在项目中打开。
如果文件处于打开状态,IDE 会重新浮出窗口。
如果文件未打开,IDE 将调用 IsDocumentInProject 查询每个项目以确定哪个项目可以打开该文件。
注意
在项目的实现 IsDocumentInProject中,提供一个优先级值,该值指示项目打开文件的级别。 枚举中 VSDOCUMENTPRIORITY 提供了优先级值。
每个项目都以优先级进行响应,指示它作为项目打开文件的重要性。
IDE 使用以下条件来确定打开该文件的项目:
以最高优先级 (
DP_Intrinsic
) 响应的项目将打开该文件。 如果多个项目使用此优先级进行响应,则第一个要响应的项目将打开该文件。如果没有具有最高优先级的项目响应(
DP_Intrinsic
),但所有项目都以相同的较低优先级进行响应,则活动项目将打开该文件。 如果没有活动项目,则第一个要响应的项目将打开该文件。如果没有项目声明文件(
DP_Unsupported
)的所有权,“杂项文件”项目将打开该文件。如果创建了杂项文件项目的实例,则项目始终使用值
DP_CanAddAsExternal
进行响应。 此值指示项目可以打开该文件。 此项目用于容纳不在任何其他项目中的打开文件。 此项目中的项列表未持久保存;仅当项目用于打开文件时,此项目才在解决方案资源管理器中可见。如果杂项文件项目未指示它可以打开该文件,则尚未创建项目的实例。 在这种情况下,IDE 将创建杂项文件项目的实例,并指示项目打开该文件。
一旦 IDE 确定哪个项目打开该文件,就会调用 OpenItem 该项目上的方法。
然后,项目可以选择使用特定于项目的编辑器或标准编辑器打开文件。 有关详细信息,请参阅 “如何:打开特定于项目的编辑器 ”和 “如何:分别打开标准编辑器”。