2

C# を使用して EnvDTE.Window クラスの SetSelectionContainer メソッドを呼び出す簡単な例を探しています。

メソッドに渡す必要があるクラスがどのように見えるかを知りたいです。

私は本当に何日もウェブを検索しましたが、リモートで役立つものさえ見つけることができませんでした.

Window window = _applicationObject.ItemOperations.NewFile(@"General\XML File", "", "");
TextSelection selection = (TextSelection) window.Document.Selection;
selection.SelectAll();
selection.Insert("<xml>some xml<xml>", (int)vsInsertFlags.vsInsertFlagsContainNewText);

object[] container = new[] {"Test1", "Test2"};
window.SetSelectionContainer(ref container);
4

2 に答える 2

1

ウィンドウにフォーカスがあるときはいつでも、プロパティウィンドウに渡されるオブジェクトを設定します。SetSelectionContainerは、 CreateToolWindowメソッドで作成されたウィンドウでのみ機能します。ソリューションエクスプローラーやタスクリストなどの他のツールウィンドウには、[プロパティ]ウィンドウに表示される内容を設定するためのコードが既に含まれています。

SetSelectionContainerを使用すると、オブジェクトをウィンドウに関連付けることができるため、ウィンドウにフォーカスがあるときはいつでも、[プロパティ]ウィンドウにそれらのオブジェクトのプロパティが表示されます。たとえば、グラフを表示するカスタムツールウィンドウがあり、グラフの特性を変更するためにプロパティウィンドウにプロパティを表示する場合は、このプロパティを使用します。

SetSelectionContainerに空のVariant値が渡されると、表示されているオブジェクトが削除されます。ツールウィンドウがアクティブで、オブジェクトが選択コンテ​​ナから利用できる場合、オブジェクトが表示されます。

Ref

ここからサンプルをダウンロードしましたか?:VisualStudioの自動化と拡張性

于 2011-12-14T04:21:08.943 に答える
0

私が発見したことから、このメソッドのオブジェクト配列パラメーターに文字列やintなどの単純なプロパティを渡すことができます。

この作業を行うための本当の秘訣は、プロパティが変更されたという通知を( ITrackSelection.OnSelectChangeを介して)生成することであるように見えます。

ここにこれのためのいくつかの実用的なコードがあります。

于 2011-12-14T04:22:15.657 に答える