为 Visual studio 扩展程序获取 Visual studio 中的选定选项卡 (VSIX)

Get the selected tabs in Visual studio for Visual studio extension (VSIX)

我想以编程方式获取所选选项卡对象的数组作为以下选择:

我只能在解决方案资源管理器中找到获取所选文件数组的方法:

但我需要的不是那个数组。

有谁知道如何在 C# 中获取选定选项卡的数组?

Visual Studio 中的选项卡代表打开的文档;因此您可能想要遍历文档 collection,它可以通过 DTE 实例的 Documents 属性 访问。有关详细信息,请参阅 https://docs.microsoft.com/en-us/dotnet/api/envdte._dte.documents?view=visualstudiosdk-2017#EnvDTE__DTE_Documents

Documents collection 返回的每个 Document 允许我们找到相关的 windows(通常是 document-windows,但不是 tool-windows );有关 Windows 属性 返回的 objects 的更多信息,请参阅 https://docs.microsoft.com/en-us/dotnet/api/envdte.document.windows?view=visualstudiosdk-2017

Window class 具有适合的属性,无论您想用它做什么;例如询问它的标题、可见性、类型、句柄等,但我不确定是否可以确定或导出文档 window 的选项卡(或文档本身)是否被选中的信息, 与否。

作为替代方案,您还可以使用 RunningDocumentTable 服务来迭代打开的文档;见 https://docs.microsoft.com/en-us/dotnet/api/microsoft.visualstudio.shell.runningdocumenttable?view=visualstudiosdk-2017