【发布时间】:2012-02-09 23:08:32
【问题描述】:
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();
}
【问题讨论】:
-
在不知道委托签名的情况下,我们很难知道出了什么问题。
__Application_BeforeSaveDocumentEventHandler长什么样子? -
如果您使用的是 Visual Studio,在键入
+=后按两次Tab,这将生成一个带有适当签名的存根方法。 -
双下划线是怎么回事? 叹息
-
双下划线我不知道。我从应用程序论坛的帖子中复制了此代码。但是,当我注释掉 using Quotewerks 引用时,VS 说“找不到类型或命名空间”,因此它必须与该引用相关。
-
我让它工作了。解决方法见下方回复。
标签: c# event-handling overloading