Compartir a través de


Window2.Collection Property

Gets the collection containing the Window object supporting this property.

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

Syntax

'Declaration
ReadOnly Property Collection As Windows
Windows Collection { get; }
property Windows^ Collection {
    Windows^ get ();
}
abstract Collection : Windows with get
function get Collection () : Windows

Property Value

Type: EnvDTE.Windows
A Windows collection.

Examples

This example iterates through the collection of windows and displays the window captions.

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)
    CollectionExample(_applicationObject)
End Sub
Sub CollectionExample(ByVal dte As DTE2)
    Try
      ' Before running this example, create a text file named
      ' "TextFile1.txt", include it in your solution,
      ' and make it the active window.
      Dim win As Window2
      Dim doc As Document
      If (_applicationObject.Documents.Count > 0) Then
        doc = _applicationObject.Documents.Item("TextFIle1.txt")
        win = CType(doc.ActiveWindow, Window2)
        ' Show the name of the project that contains this 
        ' window and document.
        MsgBox("The name of the containing project: " & vbCr _
        & win.Project.Name)
        ' Activate the window.
        win.Activate()
        ' Show the name of the current ProjectItem in the window.
        MsgBox("The current project item is: " & win.ProjectItem.Name)
        ' How many other windows are available?
        Dim w As String = "Windows: " & vbCr
        For Each wi As Window In win.Collection
          w = w & wi.Caption & vbCr
        Next
        MsgBox(w)
        ' Determine that the document returned by the document
        ' property is the same as the document object 'doc'.
        If (win.Document Is doc) Then
          MsgBox("The documents match!")
        Else
          MsgBox("The documents do not match!")
        End If
        ' Close the window.
        win.Close(vsSaveChanges.vsSaveChangesYes)
      End If
    Catch ex As Exception
      MsgBox(ex.Message)
    End Try
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;
    CollectionExample(_applicationObject);
}
public void CollectionExample(DTE2 dte)
{
    try
    {
      // Before running, create a text file named 
      // "TextFile1.txt", include it in your solution,
      // and make it the active window.
      Window2 win;
      Document doc;
      if (dte.Documents.Count > 0)
      {
        doc = dte.Documents.Item("TextFile1.txt");
        win = (EnvDTE80.Window2)doc.ActiveWindow;
        // Show the name of the project that contains this 
        // window and document.
        MessageBox.Show(win.Project.Name);
        win.Activate(); // Activate the window
        // Show the name of the current ProjectItem in the window.
        MessageBox.Show(win.ProjectItem.Name);
        // How many other windows are available?
        string w = "Windows:\n";
        foreach (Window wi in win.Collection)
        {
          w = w + wi.Caption + "\n";
        }
        MessageBox.Show(w);
        // Determine that the document returned by the document 
        // property is the same as the document object 'doc'.
        if (win.Document.Equals(doc))
          MessageBox.Show("The documents match!");
        else 
           MessageBox.Show("The documents do not match!");
        // Close the window.
        win.Close(vsSaveChanges.vsSaveChangesNo);
      }
      }
    catch(Exception ex)
    {
      MessageBox.Show(ex.Message);
    }
}

.NET Framework Security

See Also

Reference

Window2 Interface

EnvDTE80 Namespace