我正在開發一個Visual Studio擴展中,我需要得到的,他們都在屏幕上顯示的確切順序當前打開的文檔(標籤)列表的順序。確定在Visual Studio(使用EnvDTE擴展名)打開的標籤
例如,this應該返回:Program.cs中,將Class1.cs,Class2.cs,Class3.cs
的EnvDTE.Documents屬性確實爲我提供了一個列表,而不是在爲了我需要:
public List<Window> GetOpenTabsOrdered(DTE2 vsInstance)
{
var openDocuments = vsInstance.Documents.Cast<Document>();
return openDocuments.Select(x => x.ActiveWindow).ToList(); //wrong order
}
的Window.Left屬性(MSDN:獲取或設置對象的內部左邊緣與其容器的左邊緣之間的距離)也不是在確定正確的順序特別有幫助。
我想訂閱不同的事件(例如DTE2.Events.WindowEvents.WindowMoved),但並沒有給我帶來任何地方無論是。
感謝您的意見,但我仍在爲此付出努力。我試着玩GetDocumentWindowEnum和GetFramePos。實際上,GetFramePos返回的座標與EnvDTE中的Window.Left和Window.Top屬性完全相同。與左側與頂端的問題是,他們是除了活動一個所有標籤始終爲零(假設他們都停靠在同一窗口,看到我的第一帖子截圖)。如果你能看看我的代碼,並指出任何問題,我將非常感激:http://pastebin.com/uUKv6BeV – Fire095