Frage

Ich entwickle meine ersten Word 2007 Addin, und ich habe einen Office zu meinem Projekt hinzugefügt. In einem Button-Click-Handler, möchte ich einen Verweis mag entweder die aktuellen Word.Document oder Word.Application.

Ich versuche, eine Referenz über die OfficeRibbon.Context Eigenschaft zu erhalten, die die Dokumentation sagt das aktuelle Application Objekt beziehen. Es ist jedoch immer null.

Wer weiß, entweder

a), wenn es etwas, was ich tun müssen, um OfficeRibbon.Context korrekt aufgefüllt erscheinen?
b) wenn es eine andere Möglichkeit ist, kann ich einen Verweis auf die Word-Anwendung oder aktives Word-Dokument erhalten?

Weitere Informationen:

  • Ich bin mit VS2008 SP1

  • Das Band sieht aus wie es initialisiert wird fein: Das Band richtig in Word macht; Ich kann sowohl den Debugger durch den Konstruktor Schritt und die OnLoad Mitglieder; Klick-Handler-Taste ausführen korrekt.

  • Hier die Online-Hilfe für diese Eigenschaft ;

  

OfficeRibbon.Context Property

     

C#
  public Object Context { get; internal set; }

     

Ein Objekt, das die Inspektor-Fensters oder Anwendungsinstanz darstellt, die mit diesem Office Objekt zugeordnet ist.

     

Bemerkungen

     

In Outlook diese Eigenschaft bezieht sich auf die Fenster Inspektoren in dem dieser Office angezeigt wird.

     

In Excel, Word und Powerpoint, gibt diese Eigenschaft die Anwendungsinstanz, in der diese Office angezeigt wird.

War es hilfreich?

Lösung

Ich traf auch dieses Problem, während eine Excel 2007 AddIn Erstellen von VS2008 SP1 verwenden. Die Abhilfe, die ich verwendet wurde, war die Anwendung in einer internal static Eigenschaft in der Haupt-AddIn-Klasse zu speichern und es dann in meiner Band in dem Event-Handler-Referenz:

public partial class ThisAddIn
{
    internal static Application Context { get; private set; }

    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        Context = Application;
    }
    ...
}

public partial class MyRibbon : OfficeRibbon
{
    private void button1_Click(object sender, RibbonControlEventArgs e)
    {
        DoStuffWithApplication(ThisAddIn.Context);
    }
    ...
}

Andere Tipps

Versuchen Sie verweist das Dokument mit:

Globals.ThisDocument.[some item]

MSDN Reference

Erhalten Sie es aus:

Globals.ThisAddIn.Application

Während ich über Änderungen in Office 2007 Wort-Objektmodell weiß viel nicht, hier ist meine Erklärung mit VBA Kenntnissen.

Die Anwendung ist ein global verfügbares Objekt. Auch Application.ActiveDocument sollten Sie auf das aktuelle Dokument erhalten behandeln.

Spekulieren: Wie versuchen Sie, das Band zu addieren

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top