如何在 VS 中重新显示(激活)特定文档?

How to resurface (activate) a specific document in VS?

我正在用 C# 为 VS2017 编写一个小的 Visual Studio 扩展,我正在尝试一些相当简单的事情:如果我按下一个按钮,我想重新显示(激活)一个特定的文档。

我有此文档的 RunningDocumentTable 中的 RunningDocumentInfo,所以我有它的名字和层次结构以及所有这些东西。在 SDK 文档中,我只发现可以使用 IVsUIShellOpenDocument.IsDocumentOpenIDO_ActivateIfOpen 标志进行表面重修。这听起来有点不合适,因为我已经知道文档肯定是打开的,但如果它有效,我会接受它。但是如何获得实现 IVsUIShellOpenDocument 的合适实例? 或者是否有一种我只是没有找到的更简单的方法?

我找到了一种我现在接受的解决方案:

foreach (Document doc in dte2.Documents)
{
    if (doc.FullName == Moniker)
    {
        doc.Activate();
        return;
    }
}

这会遍历当前打开的文档,直到找到我要激活的那个然后激活,就像我想要的:)