如何在 VS 中重新显示(激活)特定文档?
How to resurface (activate) a specific document in VS?
我正在用 C# 为 VS2017 编写一个小的 Visual Studio 扩展,我正在尝试一些相当简单的事情:如果我按下一个按钮,我想重新显示(激活)一个特定的文档。
我有此文档的 RunningDocumentTable
中的 RunningDocumentInfo
,所以我有它的名字和层次结构以及所有这些东西。在 SDK 文档中,我只发现可以使用 IVsUIShellOpenDocument.IsDocumentOpen
和 IDO_ActivateIfOpen
标志进行表面重修。这听起来有点不合适,因为我已经知道文档肯定是打开的,但如果它有效,我会接受它。但是如何获得实现 IVsUIShellOpenDocument
的合适实例?
或者是否有一种我只是没有找到的更简单的方法?
我找到了一种我现在接受的解决方案:
foreach (Document doc in dte2.Documents)
{
if (doc.FullName == Moniker)
{
doc.Activate();
return;
}
}
这会遍历当前打开的文档,直到找到我要激活的那个然后激活,就像我想要的:)
我正在用 C# 为 VS2017 编写一个小的 Visual Studio 扩展,我正在尝试一些相当简单的事情:如果我按下一个按钮,我想重新显示(激活)一个特定的文档。
我有此文档的 RunningDocumentTable
中的 RunningDocumentInfo
,所以我有它的名字和层次结构以及所有这些东西。在 SDK 文档中,我只发现可以使用 IVsUIShellOpenDocument.IsDocumentOpen
和 IDO_ActivateIfOpen
标志进行表面重修。这听起来有点不合适,因为我已经知道文档肯定是打开的,但如果它有效,我会接受它。但是如何获得实现 IVsUIShellOpenDocument
的合适实例?
或者是否有一种我只是没有找到的更简单的方法?
我找到了一种我现在接受的解决方案:
foreach (Document doc in dte2.Documents)
{
if (doc.FullName == Moniker)
{
doc.Activate();
return;
}
}
这会遍历当前打开的文档,直到找到我要激活的那个然后激活,就像我想要的:)