VSTO: Enable ribbon button only when a document is loaded

前端 未结 3 1942
遇见更好的自我
遇见更好的自我 2021-01-22 21:58

How does one set a ribbon button in a Word add-in to be enabled when a document is loaded and disabled when no documents are loaded, just Like most of the built-in buttons?

3条回答
  •  有刺的猬
    2021-01-22 22:37

    There are several ways to handle this.

    first, you can create a publicly exposed function that returns true or false for the enabled state of your button (however you want to determine that), you then define your ribbon xml to point to that function for the Enabled property getter. If you're dealing with an IExtensibility based addin, then this is the way you'd have to go.

    If you're dealing with VSTO, then define your ribbon button in the ribbon designer and make it DISABLED by default.

    Then, during the STARTUP event, hook the WORD object, specifically the NEWDOCUMENT, DOCUMENTOPEN and WINDOWACTIVATE events.

    In the event handler code for each of those events, enable or disable your buttons as applicable depending on which event fired and which document was activated at the time.

提交回复
热议问题