9

İlk VS Addin'i geliştirmeye çalışırken, DTE2 olaylarını tetiklemede sorun yaşıyorum.DTE2 olayları tetiklenmiyor

Temel olarak, DocumentOpened ve LineChanged olayları bir nedenden dolayı çalışmaz. Hangi önemli bölümü özledim?

namespace TestAddin { 
    public class Connect : IDTExtensibility2 { 
    private AddIn _addInInstance; 
    private DTE2 _applicationObject; 

    public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom) { 
     _applicationObject = (DTE2) application; 
     _addInInstance = (AddIn) addInInst; 

     _applicationObject.Events.DocumentEvents.DocumentOpened += InitializeFoldingOnDocument; 
     _applicationObject.Events.TextEditorEvents.LineChanged += UpdateFoldingOnDocument; 
    } 

    private void UpdateFoldingOnDocument(TextPoint startpoint, TextPoint endpoint, int hint) { 
     RegionFolding(_applicationObject.ActiveDocument); 
    } 

    private void InitializeFoldingOnDocument(Document document) { 
     RegionFolding(document); 
    } 

    private void RegionFolding(Document _document) { 
     // Do the folding [...] 
    } 

    // Other IDTExtensibility2 Members [...] 
    } 
} 

cevap

20

DocumentEvents sınıfını kaydetmeniz gerekir. Sanırım başkaları da toplanacak veya çöp toplanacaklar. Benim durumumda.

+0

Teşekkür ederim, teşekkürler! – fjdumont

+1

Burada acemi bir VSX geliştiricisi olmak, bu bana oldukça iyi geldi. Burada ilgilenen herkesin Microsoft KB sorunlu makalesi varsa: http://support.microsoft.com/kb/555430 –

+0

Bunu nasıl anladığımı bilmiyorum ama bu harika! –