C# 使用TextSelection sel=(TextSelection)dte.ActiveDocument.Selection时获取null;
我创建了一个Visual Studio 2013插件,该插件使用以下代码行,例如: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;
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变量是空的?