在 Word 中,我有一个打开的文档 - 我在“另存为”对话框中导航到一个目录并选择一个现有文件。当我现在单击“保存”而不是“取消”时,如果我想覆盖/合并现有文档,我会收到消息。
是否可以拦截“另存为”对话框中的“保存”事件,以便我可以更改打开文档的文件名,抑制覆盖/合并消息?非常感谢任何建议!
最佳答案
是的,拦截 Word 命令是完全可能的。在 VBA 时代,这就像创建一个与内部 Word 命令同名的宏一样简单。
在 VSTO 中,您需要将覆盖命令添加到功能区 XML,然后将回调添加到您的代码。
MSDN 中描述了整个过程: Temporarily Repurpose Commands on the Office Fluent Ribbon
示例功能区 XML(覆盖标准保存命令)
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
onLoad="OnLoad" >
<commands>
<command idMso="FileSave" onAction="mySave" />
</commands>
<ribbon startFromScratch="false">
<tabs>
<tab id="tab1" label="Repurpose Command Demo" >
<group id="group1" label="Demo Group">
<toggleButton id="togglebutton1"
imageMso="AcceptInvitation"
size="large"
label="Alter Built-ins"
onAction="changeRepurpose" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
功能区回调
public void mySave(IRibbonControl control, bool cancelDefault)
{
MessageBox.Show("The Save button has been temporarily repurposed.");
cancelDefault = false;
}
关于c# - 在 Word 'Save As' 对话框中拦截保存事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39159944/