Compartilhar via


Window2.Document Property

Gets the Document object associated with the item, if one exists.

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

Syntax

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

Property Value

Type: EnvDTE.Document
A Document object.

Remarks

For tool windows, Document returns Nothing.

Examples

This example iterates through the collection of windows and displays the window captions. It also determines that the Document types match.

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