ToolWindows Interface

Improves discoverability and usability of tool windows in the object model by providing easy access to the shell’s tool windows in their native types.

Namespace:  EnvDTE80
Assembly:  EnvDTE80 (in EnvDTE80.dll)


<GuidAttribute("19AC6F68-3019-4D65-8D98-404DFB96B8E2")> _
Public Interface ToolWindows
public interface ToolWindows
public interface class ToolWindows
type ToolWindows =  interface end
public interface ToolWindows

The ToolWindows type exposes the following members.


  Name Description
Public property CommandWindow Gets the CommandWindow object.
Public property DTE Gets the top-level extensibility object.
Public property ErrorList Gets the list of errors displayed in the IDE.
Public property OutputWindow Gets the OutputWindow object.
Public property SolutionExplorer Gets a UIHierarchy object representing Solution Explorer.
Public property TaskList Gets the TaskList object.
Public property ToolBox Gets the ToolBox object.



  Name Description
Public method GetToolWindow Allows the user to retrieve a window by its title.



Visual Studio tool windows may be accessed through member properties. Other tool windows may be located with the GetToolWindow function.


This example adds an Output Window, titled "My output", activates it, and displays all the tool windows reached through the Collection object of the parent ToolWindows object. For more information about how to run this example as an add-in, see How to: Compile and Run the Automation Object Model Code Examples.

Imports EnvDTE
Imports EnvDTE80
Public Sub OnConnection(ByVal application As Object, _
 ByVal connectMode As ext_ConnectMode, ByVal addInInst As Object, _
 ByRef custom As Array) Implements IDTExtensibility2.OnConnection
    _applicationObject = CType(application, DTE2)
    _addInInstance = CType(addInInst, AddIn)
End Sub
Public Sub OutputToolWindow(ByVal dte As DTE2)
    Dim myOut As OutputWindow
    myOut = _applicationObject.ToolWindows.OutputWindow
    Dim myPane As OutputWindowPane
    Dim txt As String
    txt = ""
    MsgBox("Creating an output window.")
    myPane = myOut.OutputWindowPanes.Add("My output")
    MsgBox("Adding some text to the output window...")
    myPane.OutputString("This is the collection of tool windows, _
 reached through the Output Window object:" & vbCr)
    For Each tempWindow As EnvDTE80.Window2 In myOut.Parent.Collection
        txt = txt & (tempWindow.Caption & vbCr)
    Next tempWindow
    MsgBox("Displaying all the tool window captions _
 in the Output window...")
End Sub
using EnvDTE;
using EnvDTE80;
using System.Windows.Forms;
public void OnConnection(object application, 
ext_ConnectMode connectMode, object addInInst, ref Array custom)
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
public void OutputToolWindow(DTE2 dte)
    OutputWindow myOut;
    myOut = _applicationObject.ToolWindows.OutputWindow;
    OutputWindowPane myPane;
    String txt = null;
    MessageBox.Show("Creating an output window.");
    myPane = myOut.OutputWindowPanes.Add("My output");
    MessageBox.Show("Adding some text to the output window...");
    myPane.OutputString("This is the collection of tool
 windows,reached through the Output Window object:" + "\n");
    foreach (EnvDTE80.Window2 tempWindow in myOut.Parent.Collection)
        txt = txt + (tempWindow.Caption + "\n");
    MessageBox.Show("Displaying all the tool window captions 
in the output window...");

See Also


EnvDTE80 Namespace