2016-06-30 5 views
0

Ich entwickle ein Word-Add-on, in dem ich die Ereignis auf jedem Benutzer-Steuerelement (z. B. Tabs, Buttons, etc) und verfolgen muss Schreiben Sie dann einen Code basierend auf diesem Ereignis. Wie wird dies mit C# durchgeführt?Track Maus-Klick auf MS-Word für ein angepasstes Addon

PS: Genauer gesagt, Benutzersteuerelemente enthalten das Menüband und verschiedene Steuerelemente auf dem Menüband.

Vielen Dank im Voraus

Antwort

0

Fügen Sie einen Verweis auf die Word-Objektbibliothek hinzu. Gehen Sie hierzu folgendermaßen vor: Klicken Sie im Menü Projekt auf Verweis hinzufügen. Auf der Registerkarte COM Microsoft Word 11.0 Object Library

Referenz können Sie über diesen Link für MS Word MSWord

ich versuchte, gehen orten haben ich mit Ausblick auf die gleiche Art und Weise gearbeitet haben.

private Word.ApplicationClass oWord; 

private void button1_Click(object sender, System.EventArgs e) 
{ 
    //===== Create a new document in Word ============== 
    // Create an instance of Word and make it visible. 
    oWord = new Word.ApplicationClass(); 
    oWord.Visible = true; 

    // Local declarations. 
    Word._Document oDoc; 
    Object oMissing = System.Reflection.Missing.Value; 

    // Add a new document. 
    oDoc = oWord.Documents.Add(ref oMissing,ref oMissing, 
     ref oMissing,ref oMissing); // Clean document 

    // Add text to the new document. 
    oDoc.Content.Text = "Handle Events for Microsoft Word Using C#."; 
    oDoc = null;   

    //============ Set up the event handlers =============== 

    oWord.DocumentBeforeClose += 
     new Word.ApplicationEvents3_DocumentBeforeCloseEventHandler( 
     oWord_DocumentBeforeClose); 
    oWord.DocumentBeforeSave += 
     new Word.ApplicationEvents3_DocumentBeforeSaveEventHandler( 
     oWord_DocumentBeforeSave); 
    oWord.DocumentChange += 
     new Word.ApplicationEvents3_DocumentChangeEventHandler( 
     oWord_DocumentChange); 
    oWord.WindowBeforeDoubleClick += 
     new Word.ApplicationEvents3_WindowBeforeDoubleClickEventHandler( 
     oWord_WindowBeforeDoubleClick); 
    oWord.WindowBeforeRightClick += 
     new Word.ApplicationEvents3_WindowBeforeRightClickEventHandler( 
     oWord_WindowBeforeRightClick); 
} 

// The event handlers. 

private void oWord_DocumentBeforeClose(Word.Document doc, ref bool Cancel) 
{ 
    Debug.WriteLine(
     "DocumentBeforeClose (You are closing " + doc.Name + ")"); 
} 

private void oWord_DocumentBeforeSave(Word.Document doc, ref bool SaveAsUI, ref bool Cancel) 
{ 
    Debug.WriteLine(
     "DocumentBeforeSave (You are saving " + doc.Name + ")"); 
} 

private void oWord_DocumentChange() 
{ 
    Debug.WriteLine("DocumentChange"); 
} 

private void oWord_WindowBeforeDoubleClick(Word.Selection sel, ref bool Cancel) 
{ 
    Debug.WriteLine(
     "WindowBeforeDoubleClick (Selection is: " + sel.Text + ")"); 
} 

private void oWord_WindowBeforeRightClick(Word.Selection sel, ref bool Cancel) 
{ 
    Debug.WriteLine(
     "WindowBeforeRightClick (Selection is: " + sel.Text + ")"); 

} 
+0

in Ordnung, aber wir müssen die Kontrollen auf den verschiedenen Tabs eingebauten verfolgen .. –

+0

Hier wird u nicht in der Lage zu bekommen jede Veranstaltung wenden Sie sich bitte über diesen Link gehen zu wissen, welche Ereignisse die wir bekommen können 'https://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.application_events (v = office.14) .aspx' –

+0

Meinten Sie, sie werden von Microsoft verdeckt, weil sie verfolgt werden? –