Sdílet prostřednictvím


FileCodeModel.CodeElementFromPoint – metoda

Prvek kódu v určitém místě vrátí ve zdrojovém souboru.

Obor názvů:  EnvDTE
Sestavení:  EnvDTE (v EnvDTE.dll)

Syntaxe

'Deklarace
Function CodeElementFromPoint ( _
    Point As TextPoint, _
    Scope As vsCMElement _
) As CodeElement
CodeElement CodeElementFromPoint(
    TextPoint Point,
    vsCMElement Scope
)
CodeElement^ CodeElementFromPoint(
    TextPoint^ Point, 
    vsCMElement Scope
)
abstract CodeElementFromPoint : 
        Point:TextPoint * 
        Scope:vsCMElement -> CodeElement 
function CodeElementFromPoint(
    Point : TextPoint, 
    Scope : vsCMElement
) : CodeElement

Parametry

  • Point
    Typ: EnvDTE.TextPoint
    Povinné.A TextPoint objekt představující umístění editor, pro kterou chcete prvek kódu.
  • Scope
    Typ: EnvDTE.vsCMElement
    Povinné.A vsCMElement hodnotu reprezentující prvek zadaného typu, který obsahuje umístění v editoru kódu.

Vrácená hodnota

Typ: EnvDTE.CodeElement
Objekt CodeElement.

Poznámky

CodeElementFromPointvrátí kód prvek přidružené TextPoint na základě zadaného oboru nebo rozlišovací uzavření.Pokud žádný kód prvek zadaného typu obsahuje editor umístění, tato metoda selže.

Příklady

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);
    }
}

Zabezpečení rozhraní .NET Framework

Viz také

Referenční dokumentace

FileCodeModel Rozhraní

EnvDTE – obor názvů

Další zdroje

Jak: kompilace a spuštění příkladů kódu automatizace objektu modelu