2012-02-09 3 views
2

AfterOpenDocument 이벤트가 제대로 작동하지만 두 번째 이벤트를 추가 할 때 컴파일 할 때 코드를 가져올 수 없습니다. BeforeSaveDocument.C# EventHandler - 델리게이트에 일치하는 오버로드가 없습니다 (응?)

I 나타나는 오류는 다음과 같습니다

QWApp_BeforeSaveDocument 경기에 대한 과부하가 나는 C#을 상당히 새로운 해요,하지만 난 그게 어떤 감독해야합니다 생각 QuoteWerks.__Application_BeforeSaveDocumentEventHandler

위임하지 않습니다.

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(); 
    } 
+1

어떤 버전의 C#입니까? –

+1

위임자 서명에 대해 알지 못하면 무엇이 잘못되었는지를 알기가 어렵습니다. '__Application_BeforeSaveDocumentEventHandler'는 어떻게 생겼습니까? –

+1

Visual Studio를 사용하는 경우'+ ='를 입력 한 후'Tab '을 두 번 누르면 해당 서명이있는 스텁 메서드가 생성됩니다. – Groo

답변

0

즉, 처리기의 매개 변수가 이벤트 매개 변수 (위임자)와 일치하지 않습니다.
위임자 생성자에 대한 툴팁을 확인하여 필요한 매개 변수를 찾으십시오.

2

컴파일러에서 설명한 것처럼 __Application_BeforeSaveDocumentEventHandler 대리자는 QWApp_BeforeSaveDocument과 다른 인수를 사용합니다.

인수가 모두 동일한 지 확인하십시오.

내가 추측 할 경우 ref bool bCancel이거나 (out bool bCancel 일 가능성이 있음) QWApp_BeforeSaveDocument이어야합니다. 다시 __Application_BeforeSaveDocumentEventHandler 대리인을 확인하고 함수에 동일한 인수가 있는지 확인합니다.

+2

'ref bool'은 IMHO 일 가능성이 높습니다. 여러 이벤트 핸들러를 쉽게 연결할 수 있기 때문입니다. – Groo

+0

슈퍼 듀퍼! 나는 {tab} {tab}을 사용하여 + =를 입력 한 후 적절한 서명으로 스텁 메서드를 생성했으며 bool bCancel (ref bool bCancel)이 누락 된 항목이되기 전에 충분히 'ref'를 확인했습니다. 누군가가 심판이 의미하는 것을 나에게 설명 할 수 있습니까? –

+0

이것은 [ "pass by reference"] (http://msdn.microsoft.com/en-us/library/0f66670z(v=vs.71)asp)를 의미합니다. – Krizz

0

은 그 라이브러리에 대해 아무것도 몰라,하지만 page에서 BeforeSaveDocument 이벤트의 서명은 내가 짧은에 iSaveAction 변경 및/또는 부울 매개 변수에게 심판 매개 변수를 만들고 보는 시도 할 것이다 BeforeSaveDocument (short, ref bool)

입니다 컴파일하면됩니다.

+1

아마도 'ref bool'입니다. – Groo

+0

아, 좋은 지적이야. –

+0

이 문제는 예뻤습니다. ref 파라미터가 의미하는 바를 나에게 설명해 주시겠습니까? –