TextViewCreated的替代品,如(TextViewChanged)?

时间:2010-09-23 14:06:05

标签: c# textview vsx

我正在C#中创建一个小型Visual Studio 2010扩展,它使用IWpfTextViewCreationListener和TextViewCreated来捕获在VS环境中打开新TextView的时间。我遇到的问题是,此方法仅在通过VS Solution Explorer窗口打开新窗口时触发,并且在VS启动时已经包含打开的窗口并切换窗口选项卡时不会触发。我试过寻找类似TextViewChanged的东西,但找不到这样的方法。无论如何,当选择另一个选项卡窗口时,是否有捕获新的TextView?

非常感谢任何帮助。

这个问题也发布在MSDN VS Extensibility论坛上: VSX 2010 - Alternative to TextViewCreated such as (TextViewChanged)?

由于

约翰

1 个答案:

答案 0 :(得分:1)

没有TextViewCreated,但如果您在创建时注册到IWpfTextView.GotAggregateFocus,您将获得文件之间每次切换的挂钩:

    public void TextViewCreated(IWpfTextView textView)
    {
        textView.GotAggregateFocus += TextViewCameToFocus;
        // Do stuff when a new IWpfTextView is created...
    }

    void TextViewCameToFocus(object sender, EventArgs e)
    {
        var focusedTextView = (IWpfTextView)sender;

        // Do stuff when a specific IWpfTextView comes to focus...
    }

如果您希望能够将触发事件与每个文本视图的逻辑链接,您可能还想跟踪IWpfTextView对象。