AfterOpenDocument
事件工作正常,但是当我添加第二个事件BeforeSaveDocument
时,我无法编译代码。
我收到的错误是:
QWApp_BeforeSaveDocument
没有重载符合委托QuoteWerks.__Application_BeforeSaveDocumentEventHandler
我对c#很新,但我认为必须要有一些疏忽。
QWApp.AfterOpenDocument += new __Application_AfterOpenDocumentEventHandler(QWApp_AfterOpenDocument);
QWApp.BeforeSaveDocument += new __Application_BeforeSaveDocumentEventHandler(QWApp_BeforeSaveDocument);
void QWApp_AfterOpenDocument()
{
string todayDate = DateTime.Now.ToString("MM/dd/yyyy");
QWApp.DocFunctions.SetDocumentHeaderValue("DocDate", todayDate, false);
QWApp.DocFunctions.RefreshDisplay();
}
public void QWApp_BeforeSaveDocument(int iSaveAction, bool bCancel)
{
string todayDate = DateTime.Now.ToString("MM/dd/yyyy");
QWApp.DocFunctions.SetDocumentHeaderValue("DocDate", todayDate, false);
QWApp.DocFunctions.RefreshDisplay();
}
答案 0 :(得分:2)
正如编译器所说,__Application_BeforeSaveDocumentEventHandler
委托的参数不同于QWApp_BeforeSaveDocument
。
确保两者的参数相同。
如果我猜测,您应该在ref bool bCancel
中out bool bCancel
或(QWApp_BeforeSaveDocument
}。再次,检查您的__Application_BeforeSaveDocumentEventHandler
委托,并使您的函数具有相同的参数。
答案 1 :(得分:0)
这意味着处理程序的参数与事件(委托)的参数不匹配 检查委托构造函数的工具提示,找出它需要的参数。
答案 2 :(得分:0)
我对该库一无所知,但在此page上,BeforeSaveDocument事件的签名为BeforeSaveDocument (short, ref bool)
我会尝试将iSaveAction更改为short和/或使boolean参数成为ref参数并查看是否编译。