2016-04-03 14 views
0

私は、たとえば、このコード行を使用するVisual Studioの2013のプラグインを作成しました:私はラインでヌル例外で取得していますTextSelectionを使用しているときにnullを取得するsel =(TextSelection)dte.ActiveDocument.Selection;

public void CodeElementFromPointExample(DTE2 dte) 
{ 
    try 
    { 
     TextSelection sel = 
      (TextSelection) dte.ActiveDocument.Selection; 

     TextPoint pnt = (TextPoint)sel.ActivePoint; 
     ... 
    } 
    ... 
} 

:一般的に

TextSelection sel = (TextSelection) dte.ActiveDocument.Selection; 

を、私はしたいと思います"cs"ファイルコードを発見し、メソッド名を見つけて、例えばそのファイルとその属性をクリックします。

+0

Selectionは、名前が示すように、ドキュメント内で現在選択されているテキストです。どこかをクリックするだけで何も選択されません。 – derpirscher

+0

私は文書のどこかをクリックするだけではなく、テキストを選択してからコピーをクリックし、次にイベント呼び出しを呼び出すと、このメソッド内で残りの処理を試み、メソッドなどを見つけようとします。 – Oren

+0

それは正しいのですか?私はウェブ上で本当の実例を見つけられません。ちょうどスニペットコード。 – Oren

答えて

0

コードでは、dteまたはdte.ActiveDocumentのいずれかをnullにできます。いくつかのコードロジックを使用してケースを判別します。

dte.ActiveDocumentがnullでない場合は、.Objectプロパティを取得し、EnvDTE.TextDocumentにキャストして、アクティブなドキュメントがテキストドキュメントであるかどうかを確認してください。

次に、TextDocument.SelectionはTextSelectionオブジェクトを返します。

関連する問題