SetSelectionContainer example

本文关键字:example SetSelectionContainer | 更新日期: 2023-09-27 18:17:52

我寻找一个简单的例子,使用c#在EnvDTE上调用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);

SetSelectionContainer example

设置应该传递给属性窗口的对象当窗口有焦点时。SetSelectionContainer只在使用CreateToolWindow方法创建的窗口。其他工具窗口,"解决方案资源管理器"answers"任务列表"等已具有用于设置的代码

SetSelectionContainer允许您将对象与窗口关联,以便每当窗口有焦点,属性窗口显示这些属性对象。例如,如果您有自定义属性,则可以使用此属性显示图表的工具窗口,您希望显示属性,以更改属性的特征图表。

如果SetSelectionContainer被传递了一个空的Variant值,它移除显示的对象。对象显示时,工具窗口

是活动的,对象可以从选择容器中获得。

Ref .

你从这里下载样本了吗?: Visual Studio的自动化和可扩展性

根据我的发现,您可以在此方法的对象数组参数中传递简单的属性,例如字符串和int。

看起来,真正的技巧使这个工作是生成通知(通过ITrackSelection.OnSelectChange),属性已经改变。

这里有一些工作代码。