【问题标题】:How to create window form inside custom tool window in visual studio 2015/2017?如何在 Visual Studio 2015/2017 的自定义工具窗口中创建窗口窗体?
【发布时间】:2018-06-15 05:14:53
【问题描述】:

我需要为 Visual Studio 2015 和 2017 开发一个扩展,我需要提供连接到某个应用程序服务器的登录表单,登录后它将在 Visual Studio 的树形视图中显示所有可用服务。我已经通过以下方式创建了它

custom command >>> custom form(login) >> service tree form(像eclipse包资源管理器一样在树视图中列出所有服务)

但上述方法的问题在于它会在任务栏中打开新窗口,或者以另一种方式看起来完全像一个不同的窗口。这部分我不想要。我希望在 Visual Studio 的自定义工具窗口中使用此功能,以便它不会显示为新窗口或任务。

谁能帮我构建上述场景?请注意,这必须支持 Visual Studio 2015 on wards ..

提前致谢。

【问题讨论】:

  • 这个问题呢?您能从 Hugo Quintela Ribeiro 的建议中获得有用的信息吗?
  • @JackZhai-MSFT 感谢您的回复。我会快速尝试并尽快分享反馈。
  • 期待您的回音。
  • @JackZhai-MSFT 对于延迟表示歉意。我已经浏览了分享的文章,但并没有太大帮助。实现我在问题中指定的功能面临太多困难。您可以分享在 CustomToolWindow 上创建的树视图示例吗?在浏览了其他一些文章后注意到,大多数树视图的用例都在 windows Form 上实现。我只是想知道如何在自定义工具窗口中动态插入表单并在该表单中添加树视图,然后在其中动态添加节点...

标签: c# visual-studio visual-studio-2015 visual-studio-extensions visual-studio-addins


【解决方案1】:

从这里开始:

Adding a tool window

【讨论】:

    【解决方案2】:

    终于找到了动态添加treeview和自定义工具窗口添加children的方法。

    方法如下:

    以下代码 sn-p 已添加到 customtoolwindow 控制器类的构造函数中。

    TreeViewItem treeItem = new TreeViewItem();
                treeItem.Header = "North America";
    
                treeItem.Items.Add(new TreeViewItem() { Header = "USA" });
                treeItem.Items.Add(new TreeViewItem() { Header = "Canada" });
                treeItem.Items.Add(new TreeViewItem() { Header = "Mexico" });
    
                TreeView treeView = new TreeView();
                treeView.Items.Add(treeItem);
    
    
                sampleStack.Children.Add(treeView);
    

    sampleStack 在相应的 .xaml 文件中定义。

    【讨论】:

    • 您可以将您的解决方案标记为答案。谢谢你的分享。祝你有美好的一天:)
    • 来吧。这个答案与为 Visual Studio 开发扩展无关。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    • 2013-07-20
    • 1970-01-01
    • 1970-01-01
    • 2011-09-03
    相关资源
    最近更新 更多