2014-02-07 33 views
-1

我的複製散文我 - 我的事件,但我不得不排隊cp.OnCopying出現問題的錯誤:事件處理程序在委託類型中拋出錯誤?

沒有重載「cp_copying」匹配委託 System.EventHandler「System.ComponentModel.ProgressChangedEventArgs」

符合cp.OnCopyingComplete:

無法隱式轉換類型'System.EventHandler'System.EventArgs」 爲 'CustomProses.Completedelegate'

代碼:

public void SalinMultipleFile1() 
{ 
    cp.OnCopying += new EventHandler<ProgressChangedEventArgs>(cp_copying); 
    cp.OnCopyingComplete += new EventHandler<EventArgs>(cp_CopySucces); 
    cp.CustomCopy(DGVFile, tempFolder); 
} 

void cp_copying(object sender, ProgressEventArgs e) 
{ 
    dfe.pbPerFile.Increment(e.PercentDelta); 
} 

void cp_CopySucces(object sender, EventArgs e) 
{ 
    dfe.l_proses.Text = "Succes Copy"; 
} 

類自定義散文

Class CustomProses 
{ 
    public delegate void ProgressChangeDelegate(double Persentage, ref bool Cancel); 
    public delegate void Completedelegate(); 
    public event ProgressChangeDelegate OnCopying; 
    public event Completedelegate OnCopyingComplete; 
} 

有誰知道哪裏的錯誤在於?

回答

1

你需要改變你的事件處理程序分配到這樣的事情。

cp.OnCopying += cp_copying; 
cp.OnCopyingComplete += cp_CopySucces; 

你的事件處理器還需要精確匹配的事件,以便改變你的事件處理器到:

void cp_copying(double value, ref bool e) 
{ 
    //dfe.pbPerFile.Increment(e.PercentDelta); 
} 

void cp_CopySucces() 
{ 
    // dfe.l_proses.Text = "Succes Copy"; 
} 
+0

這是工作。謝謝 :) – sloqye

0

你的Completedelegate沒有參數並返回void.But你試圖附加它你需要兩個參數cp_CopySucces

ProgressChangeDelegate需要一個double和一個bool參數,但你正在試圖將其附加到cp_copying方法,它需要一個objectProgressEventArgs作爲參數。

你的方法和委託簽名應該 match.Errors明顯由way.I認爲你需要閱讀Delegates Tutorial

+0

謝謝,我已經固定它 – sloqye

相關問題