1 回答

TA貢獻1780條經(jīng)驗 獲得超5個贊
不,沒有事件可以捕獲任何“保存”或“保存后”操作。唯一與保存有關(guān)的是DocumentBeforeSave。
DocumentBeforeSave 確實提供了讓開發(fā)人員抑制內(nèi)置 UI(SaveAs 對話框)以及取消觸發(fā)事件的操作的參數(shù)。這允許開發(fā)人員提供他們自己的保存(as)接口,這將能夠確定文檔何時保存(as)并根據(jù)文件名、擴展名或任何標準采取所需的任何操作。
也可以使用 Word 的內(nèi)置 SaveAs 對話框,而不是創(chuàng)建自己的對話框,盡管這在 C# 中有點迂回,因為它需要使用 PInvoke。這是一個示例,可讓您了解其工作原理(由于我在移動設(shè)備上未進行測試):
private void ThisDocument_BeforeSave(object sender, object e)
{
//Suppress the built-in SaveAs interface (dialog box)
e.SaveAsUi = false;
//Cancel the default action
e.Cancel = true;
Word.Dialog dlg = wdApplication.Dialogs[Microsoft.Office.Interop.Word.WdWordDialog.wdDialogFileSaveAs];
//Word dialog box parameters have to be accessed via Late-Binding (PInvoke)
//To get the path, use the Name property
object oDlg = (object)dlg;
object[] oArgs = new object[1];
oArgs[0] = (object)@"";
dlg.Show(ref missing);
object fileName = oDlg.GetType().InvokeMember("Name", BindingFlags.GetProperty, null, oDlg, oArgs);
}
此處列出了可以使用的可用對話框參數(shù)。
- 1 回答
- 0 關(guān)注
- 206 瀏覽
添加回答
舉報