This documentation is archived and is not being maintained.

SelectedItems Interface

Contains SelectedItem objects, which represent selected projects or project items.

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

public interface SelectedItems : IEnumerable

The SelectedItems type exposes the following members.

Public propertyCountGets a value indicating the number of objects in the SelectedItems collection.
Public propertyDTEGets the top-level extensibility object.
Public propertyMultiSelectGets whether or not the current selection includes multiple items.
Public propertyParentGets the immediate parent object of a SelectedItems collection.
Public propertySelectionContainerGets a SelectionContainer object that represents the designer hosting the selected item(s).

Public methodGetEnumeratorGets an enumeration for items in a collection.
Public methodItemReturns a SelectedItem object in the SelectedItems collection.

There is always a SelectedItems collection, even when there are no project items. For example, if Solution Explorer has focus and a project node is selected, then there is one SelectedItem object. The selected item's Project property refers to the selected project, and its ProjectItem property is Null.

Sub SelectedItemsExample()
   Dim SelItems As SelectedItems
   Dim SelItemObj As SelectedItem
   Dim SelContain As SelectionContainer
   Dim SelItem As SelectedItem
   Dim NameStr As String

   SelItems = DTE.SelectedItems
   ' List the number of items selected.
   If SelItems.MultiSelect = True Then
      MsgBox("You have " & SelItems.Count & " items selected in Solution Explorer.")
   End If

   ' Set a reference to the first selected item.
   SelItemObj = SelItems.Item(1)
   ' List the names of the project or project items under the selected 
   ' item.
   For Each SelItem In SelItemObj.Collection
      NameStr = NameStr & SelItem.Name
      If TypeOf SelItem.Project Is Project Then
         NameStr = NameStr & " Project-" & SelItem.Project.Name & vbCrLf
         If TypeOf SelItem.ProjectItem Is ProjectItem Then
             NameStr = NameStr & SelItem.ProjectItem.FileNames(1) & vbCrLf
         End If
      End If
   MsgBox("You selected: " & NameStr)
End Sub