Window.ProjectItem Property

Gets the ProjectItem object associated with the Window object.

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

Syntax

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

Property Value

Type: EnvDTE.ProjectItem
A ProjectItem object.

Examples

Public Sub CodeExample(ByVal dte As DTE2, ByVal addin As AddIn) 
    Try
        ' Before running, create a text file named 
        ' "TextFile1.txt", include it in your solution,
        ' and make it the active window.
        Dim win As Window
        Dim doc As Document
        If dte.Documents.Count > 0 Then
            doc = dte.Documents.Item("TextFile1.txt")
            win = 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?
            Dim w As String = "Windows:" + vbCrLf
            Dim wi As Window
            For Each wi In  win.Collection
                w = w + wi.Caption + vbCrLf
            Next wi
            MessageBox.Show(w)
            ' Determine that the document returned by the document 
            ' property is the same as the document object 'doc'.
            If win.Document Is doc Then
                MessageBox.Show("The documents match!")
            Else
                MessageBox.Show("The documents do not match!")
            End If
            ' Close the window.
            win.Close(vsSaveChanges.vsSaveChangesNo)
        End If
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub
public void CodeExample(DTE2 dte, AddIn addin)
{   
    try
    {   // Before running, create a text file named 
        // "TextFile1.txt", include it in your solution,
        // and make it the active window.
        Window win;
        Document doc;
        if (dte.Documents.Count > 0)
        {
            doc = dte.Documents.Item("TextFile1.txt");
            win = 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

Window Interface

EnvDTE Namespace

Other Resources

How to: Compile and Run the Automation Object Model Code Examples