簡體   English   中英

如何以編程方式將Visual Studio加載項窗口附加到選項卡?

[英]How do I attach my Visual Studio Add-in window to a tab programmatically?

我正在創建一個小型插件,以期使它在Visual Studio中變得有趣且易於使用。 盡管有一個小麻煩,但我似乎無法弄清楚如何將我新創建的窗口附加到選項卡欄。

全部都是F#,但是解決方案應該只是幾個函數調用,因此請隨時在答案中使用C#或VB。

type WindowManager(applicationObject: DTE2, addInInstance: AddIn) = 
    member this.CreateWindow(control: Type, caption) = 
        let windowInterface = applicationObject.Windows :?> Windows2
        let tempObj = ref null
        let assemblyLocation = System.Reflection.Assembly.GetExecutingAssembly().Location
        let className = control.FullName
        let instanceGuid = System.Guid.NewGuid().ToString("B")
        let toolWindow = windowInterface.CreateToolWindow2( addInInstance, assemblyLocation, className, caption, instanceGuid, tempObj)
        toolWindow.Visible <- true

我想我只需要將其鏈接到applicationObject中的某些內容即可。 唯一的問題是什么。

我的理解是,控制工具窗口位置的唯一方法是通過VSPackage而不是通過AddIn提供它(請參見http://msdn.microsoft.com/zh-cn/library/bb166406.aspxhttp:// msdn有關更多信息,請訪問.microsoft.com / en-us / library / bb165452.aspx

我相信這種限制的原因是特定工具窗口的位置是用戶可控制的。 即使您通過VSPackage提供了工具窗口並通過注冊表魔術符如上面的鏈接中所述指定了它的位置,您仍然仍然只能控制工具窗口首次出現的位置。 之后,該位置將始終來自用戶移動您的工具窗口的任何位置,這是有意不可覆蓋的。

我可能會缺少一些新的VS2010機制。

我似乎已經知道了:

toolWindow.Linkable <- false
toolWindow.WindowState <- vsWindowState.vsWindowStateMaximize
toolWindow.Visible <- true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM