FileCodeModel.CodeElementFromPoint(TextPoint, vsCMElement) Method

Definition

Returns a code element at a specific ___location in a source file.

public:
 EnvDTE::CodeElement ^ CodeElementFromPoint(EnvDTE::TextPoint ^ Point, EnvDTE::vsCMElement Scope);
public:
 EnvDTE::CodeElement ^ CodeElementFromPoint(EnvDTE::TextPoint ^ Point, EnvDTE::vsCMElement Scope);
EnvDTE::CodeElement CodeElementFromPoint(EnvDTE::TextPoint const & Point, EnvDTE::vsCMElement Scope);
[System.Runtime.InteropServices.DispId(5)]
public EnvDTE.CodeElement CodeElementFromPoint(EnvDTE.TextPoint Point, EnvDTE.vsCMElement Scope);
[<System.Runtime.InteropServices.DispId(5)>]
abstract member CodeElementFromPoint : EnvDTE.TextPoint * EnvDTE.vsCMElement -> EnvDTE.CodeElement
Public Function CodeElementFromPoint (Point As TextPoint, Scope As vsCMElement) As CodeElement

Parameters

Point
TextPoint

Required. A TextPoint object representing the editor ___location for which you want a code element.

Scope
vsCMElement

Required. A vsCMElement value representing the code element of the specified type that contains the editor ___location.

Returns

A CodeElement object.

Attributes

Examples

Sub CodeElementFromPointExample(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 fcm As FileCodeModel = _  
            dte.ActiveDocument.ProjectItem.FileCodeModel  
        Dim elems As String  
        Dim elem As CodeElement  
        Dim scope As vsCMElement  
        For Each scope In [Enum].GetValues(scope.GetType())  
            elem = fcm.CodeElementFromPoint(pnt, 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 CodeElementFromPointExample(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.  
        FileCodeModel fcm =   
            dte.ActiveDocument.ProjectItem.FileCodeModel;  
        string elems = "";  
        vsCMElement scopes = 0;  

        foreach (vsCMElement scope in Enum.GetValues(scopes.GetType()))  
        {  
            CodeElement elem = fcm.CodeElementFromPoint(pnt, 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);  
    }  
}  

Remarks

CodeElementFromPoint returns the code element associated with the TextPoint based on the specified scope or granularity of containment. If no code element of the specified type contains the editor ___location, then this method fails.

Applies to