QA@IT

アドインでVisualStudio上に表示したツールウィンドウを任意の場所にドッキングしたい

2991 PV

お世話になります。
表題の件に関してお助け願えませんでしょうか?

OS Winsows7 
開発環境 VisualStudio2010 .NetFrameWork4.0
開発言語 VisualBasic.Net

上記環境でVisualStudio2010上で動作するアドインを作成しています。

VisualStudio上にツールウィンドウを表示させる仕組みに関しては下記リンクを参考にして表示させる事が出来ました。

http://msdn.microsoft.com/ja-jp/library/aa301685(v=vs.71).aspx

この例だとツールウィンドウはフローティングした状態で表示されます。

そこでツールウィンドウのインスタンスのIsFloatingプロパティをFalseにするとドッキングされた状態で表示されるのですがスタートページの下にドッキングされてしまいなんとも微妙な感じに思えます。

出来ればスタートページと同じ箇所にドッキングしてスタートページとタブの切り替えが出来る状態で表示したいのですがどのようにすれば実現可能でしょうか?

現状、表示中のコントロールの一覧を取得して対象の部分にADDもしくはドッキングするメソッドがあるのではないかと思って色々調べているのですが手がかりがつかめずにいます。

知見をお持ちの方おられましたらご示唆頂けますでしょうか?

よろしくお願いします。

回答

VS2008で大分前にやったので記憶が定かじゃないですが、
ProvideToolWindow属性でStyle に ドックスタイルとか、Orientationとか、Windowといったオプションを指定することで実現できたと思います(VS2010でもつかえたはず)。

「どこに」にあたるのはWindowで、ToolWindowGuids80.Outputwindowや、GUIDを直接指定します。(この場合は出力ウィンドウが対象80の部分はバージョン由来なので、対象のVSによって違うものが選べたりします。)

たとえば

[MsVsShell.ProvideToolWindow(typeof(HogeHogeToolWindow), Style = VsDockStyle.Tabbed, Orientation = ToolWindowOrientation.Bottom, Transient = false, Window = ToolWindowGuid80.Outputwindow)]

のように指定します。
ツールウィンドウを追加すれば (ツールウィンドウじゃなく)アドインのクラスの属性に MsVsShell.ProvideToolWindowが追加されたような気がするんですが(違ったらごめんなさい)、それにオプションを書き足します。

ちなみにTransientはVS起動時に毎回いてほしいウィンドウなのか、起動時は開いてなくてもいいウィンドウなのか(trueのとき)というようなオプションだったと思います。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。