代码之家  ›  专栏  ›  技术社区  ›  Borislav Borisov

以编程方式访问Visual Studio解决方案资源管理器搜索框

  •  1
  • Borislav Borisov  · 技术社区  · 7 年前

    我正在开发一个VS扩展,需要在解决方案中选择一个特定的项目。但是,如果用户以前在解决方案资源管理器搜索框中键入过任何文本,当我找到项目项时,调用

    .Select(vsUISelectionType.vsUISelectionTypeSelect)
    

    它不起作用。我的想法是在选择项目之前访问搜索框并清除它。不幸的是,我没有找到任何关于如何做到这一点的线索,没有在文档和教程中找到,甚至没有检查

    dte.ToolWindows.SolutionExplorer
    

    对象我是不是做错了,所以我找不到一个解决方案来解决一些本应该很容易做到的事情?

    提前感谢您,如有任何想法/帮助,将不胜感激!

    1 回复  |  直到 7 年前
        1
  •  1
  •   Jack Zhai    7 年前

    要清除搜索框,请执行以下操作:

    IVsSolutionUIHierarchyWindow solutionWindows = (IVsSolutionUIHierarchyWindow)VsShellUtilities.GetUIHierarchyWindow(this.ServiceProvider, VSConstants.StandardToolWindows.SolutionExplorer);    
    
    if (solutionWindows is IVsWindowSearch)
    {
        var slw = solutionWindows as IVsWindowSearch;
        slw.ClearSearch();
    }