Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Returns the code element at the TextPoint location.
Namespace:  EnvDTE
Assembly:  EnvDTE (in EnvDTE.dll)
Syntax
'Declaration
ReadOnly Property CodeElement ( _
    Scope As vsCMElement _
) As CodeElement
CodeElement this[
    vsCMElement Scope
] { get; }
property CodeElement^ CodeElement[[InAttribute] vsCMElement Scope] {
    CodeElement^ get ([InAttribute] vsCMElement Scope);
}
abstract CodeElement : CodeElement
JScript does not support indexed properties.
Parameters
- Scope
 Type: EnvDTE.vsCMElement
 Required. A vsCMElement constant indicating the code element with the specified kind that contains the editor location.
Property Value
Type: EnvDTE.CodeElement
A CodeElement object.
Remarks
If the specified code element type is not at the TextPoint location, then CodeElement returns Nothing. CodeElement is a shortcut for TextPoint.Parent.Parent.ProjectItem.CodeModel.CodeElementFromPoint(TextPoint, <scope>).
Examples
Sub CodeElementExample(ByVal dte As DTE2)
    ' Before running this example, open a code document from a project
    ' and place the insertion point anywhere inside the source code.
    Try
        Dim sel As TextSelection = _
            CType(dte.ActiveDocument.Selection, TextSelection)
        Dim pnt As TextPoint = CType(sel.ActivePoint, TextPoint)
        ' Discover every code element containing the insertion point.
        Dim elems As String
        Dim elem As CodeElement
        Dim scope As vsCMElement
        For Each scope In [Enum].GetValues(scope.GetType())
            elem = pnt.CodeElement(scope)
            If IsNothing(elem) = False Then
                elems &= elem.Name & _
                    " (" & scope.ToString() & ")" & vbCrLf
            End If
        Next
        MsgBox("The following elements contain the insertion point:" _
            & vbCrLf & vbCrLf & elems)
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
End Sub
public void CodeElementExample(DTE2 dte)
{
    // Before running this example, open a code document from a project
    // and place the insertion point anywhere inside the source code.
    try
    {
        TextSelection sel = 
            (TextSelection)dte.ActiveDocument.Selection;
        TextPoint pnt = (TextPoint)sel.ActivePoint;
        // Discover every code element containing the insertion point.
        string elems = "";
        vsCMElement scopes = 0;
        foreach (vsCMElement scope in Enum.GetValues(scopes.GetType()))
        {
            CodeElement elem = pnt.get_CodeElement(scope);
            if (elem != null)
                elems += elem.Name + 
                    " (" + scope.ToString() + ")\n";
        }
        MessageBox.Show(
            "The following elements contain the insertion point:\n\n" 
            + elems);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}
.NET Framework Security
- Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code.
See Also
Reference
Other Resources
How to: Compile and Run the Automation Object Model Code Examples