Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.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
Visual studio 2013 Visual Studio扩展:跟踪新代码窗口何时打开?_Visual Studio 2013_Visual Studio Extensions - Fatal编程技术网

Visual studio 2013 Visual Studio扩展:跟踪新代码窗口何时打开?

Visual studio 2013 Visual Studio扩展:跟踪新代码窗口何时打开?,visual-studio-2013,visual-studio-extensions,Visual Studio 2013,Visual Studio Extensions,我正在尝试编写一个VisualStudio扩展,它跟踪新代码窗口打开时的情况。我发现了一个类IVsCodeWindowEvents,它似乎为该类提供了侦听器方法: public int OnNewView(IVsTextView pView) 然而,我有一个问题,我不知道如何注册来收听这些活动 我的班级是这样的: public sealed class VSTrackerPackage : Package, IVsCodeWindowEvents 在这个类中,我实现了OnNewView方法,

我正在尝试编写一个VisualStudio扩展,它跟踪新代码窗口打开时的情况。我发现了一个类
IVsCodeWindowEvents
,它似乎为该类提供了侦听器方法:

public int OnNewView(IVsTextView pView)
然而,我有一个问题,我不知道如何注册来收听这些活动

我的班级是这样的:

public sealed class VSTrackerPackage : Package, IVsCodeWindowEvents

在这个类中,我实现了OnNewView方法,但是如何在我的
Initialize
方法中注册这个侦听器呢?

是的,您可以通过和更具体地注册Visual Studio事件

第一步是通过
Initialize
方法从包中获取访问权限:

public sealed class VSTrackerPackage : Package
{
    DTE2 dte = GetService(typeof (DTE)) as DTE2;
}
在这一点上,我建议附加到事件。从那里你可以检查它是否是你感兴趣的文件。如果需要与窗口进行交互,也可以获取该窗口:

_dte.Events.DocumentEvents.DocumentOpened += document =>
        {
            //double check this logic.
            if (document.Language != "C#")
                return;

            //do work


            //or - load window document.ActiveWindow.
        };

如果有帮助的话,我有一个开源的VisualStudio插件(shammeluss plug:),它连接到许多VS事件。相关类位于GitHub:。课程定义从第243行开始。

非常感谢,这非常有效!但现在我已经有了下一个问题。我希望在“代码”窗口中选择新方法时收到通知。我引用了DropDownBarManager,但似乎没有相关的DropDownBar。还有其他简单的为什么要注册这些活动吗?这听起来像是一个新问题!把它写下来,在这里贴上链接,我会看看我能做些什么来帮助你。非常感谢,帮助会很好。这是一个新问题: