Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用TextSelection sel=(TextSelection)dte.ActiveDocument.Selection时获取null;_C#_Visual Studio_Visual Studio 2013_Vspackage - Fatal编程技术网

C# 使用TextSelection sel=(TextSelection)dte.ActiveDocument.Selection时获取null;

C# 使用TextSelection sel=(TextSelection)dte.ActiveDocument.Selection时获取null;,c#,visual-studio,visual-studio-2013,vspackage,C#,Visual Studio,Visual Studio 2013,Vspackage,我创建了一个Visual Studio 2013插件,该插件使用以下代码行,例如: public void CodeElementFromPointExample(DTE2 dte) { try { TextSelection sel = (TextSelection) dte.ActiveDocument.Selection; TextPoint pnt = (TextPoint)sel.ActivePoint;

我创建了一个Visual Studio 2013插件,该插件使用以下代码行,例如:

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

        TextPoint pnt = (TextPoint)sel.ActivePoint;
        ...
    }
    ...
}
我在行中得到一个空异常:

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

一般来说,我希望发现一个“cs”文件代码,并在单击文件及其属性的位置找到一个方法名。

在您的代码中,dte或dte.ActiveDocument可以为空。使用一些代码逻辑来确定情况

一旦得到dte.ActiveDocument不为null,获取其.Object属性并尝试将其强制转换为EnvDTE.TextDocument,以查看活动文档是否为文本文档


然后,TextDocument.Selection返回一个TextSelection对象。

正如名称所示,Selection是文档中当前选定的文本。仅仅单击某个地方并不能选择任何内容。我不仅仅是单击文档上的某个地方,我选择了一个文本,然后单击“复制”,然后复制事件调用,在这个方法中,我尝试执行其余的操作,发现方法等。你有没有示例如何更正它?我在web上没有找到真正的工作示例。只是代码片段。也许你的dte变量是空的?