2010-09-23 3 views
2

Je crée une petite extension Visual Studio 2010 en C# qui utilise IWpfTextViewCreationListener et TextViewCreated pour capturer quand un nouveau TextView est ouvert dans l'environnement VS. Le problème que j'ai est que cette méthode ne se déclenche que lorsqu'une nouvelle fenêtre est ouverte via la fenêtre VS Solution Explorer, et non déclenchée quand VS contient déjà des fenêtres ouvertes au démarrage, et en changeant les onglets de fenêtre. J'ai essayé de chercher quelque chose comme TextViewChanged, mais je n'ai pas trouvé une telle méthode. Est-il possible de capturer le nouveau TextView quand une autre fenêtre à onglets est sélectionnée?Alternative à TextViewCreated tels que (TextViewChanged)?

Toute aide serait grandement appréciée.

Cette question a également été affiché sur le forum MSDN VS Extensibilité: VSX 2010 - Alternative to TextViewCreated such as (TextViewChanged)?

Merci

John

Répondre

2

Il n'y a pas TextViewCreated, mais si vous vous inscrivez à IWpfTextView.GotAggregateFocus comme il est créé , vous obtenez un crochet à chaque commutateur entre les fichiers:

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... 
    } 

Vous pouvez également nt pour garder trace des objets IWpfTextView, si vous voulez être capable de relier les événements déclenchés à votre logique de chaque textview.

Questions connexes