No overload for 'method' matches delegate 'Syste

本文关键字:delegate Syste matches method No overload for | 更新日期: 2023-09-27 18:13:52

我试图建立一个程序,一旦按钮被点击,每5秒将执行功能(OnTimed)。

下面是目前的代码:
private void bntCapture_Click(object sender, RoutedEventArgs e)
{ 
    DispatcherTimer t1 = new DispatcherTimer();
    t1.Interval = TimeSpan.FromMilliseconds(5000);
    t1.IsEnabled = true;
    t1.Tick += new EventHandler(OnTimed);
    t1.Start();
}
void OnTimed(object sender, ElapsedEventArgs e)
{
    imgCapture.Source = imgVideo.Source;
    System.Threading.Thread.Sleep(1000);
    Helper.SaveImageCapture((BitmapSource)imgCapture.Source);
} 

当我运行代码时,显示错误:

"没有重载'方法'匹配委托'系统。EventHandler '

No overload for 'method' matches delegate 'Syste

事件处理程序方法的签名与委托类型不兼容。

DispatcherTimer.Tick事件的订阅者必须是EventHandler委托类型,声明为:

public delegate void EventHandler(object sender, EventArgs e);

试试这个:

void OnTimed(object sender, EventArgs e)
{
   ...
}

如果你使用的是Windows phone 8.1,那么你需要以下内容

private void OnTimed(object sender, object e) {
      // You Code Here
 }

OnTimed方法必须这样声明:

 private void OnTimed(object sender, EventArgs e)
 {
     // Do something
 }

我知道这可能有点晚了,但我只是想给有这个问题的人更多一点:

timer.Tick += new EventHandler(Method);
public void Method(object sender, EventArgs e)
{
//Do Something
}

解决问题

也可以这样写:timer。

timer.Tick += Method;
public void Method(object sender, EventArgs e)
{
//Do Something
}

希望有帮助!

Dispatcher。Tick是简单的EventHandler:

公共事件eventandler Tick;

所以EventHandler的参数应该是:

void OnTimed(object sender, EventArgs e)

不是

void OnTimed(object sender, ElapsedEventArgs e)

看起来你忽略了System.Timers.Timer.Elapsed事件这是:

public event ElapsedEventHandler Elapsed
public delegate void ElapsedEventHandler(
    Object sender,
    ElapsedEventArgs e
)

在我的情况下,我使用自定义winforms控件进行digitalPersona指纹识别。

当我试图重载'OnComplete'方法时,它会出现'No overload…'

private void FingerprintVerificationControl_OnComplete(object control, DPFP.FeatureSet featureSet, DPFP.Gui.EventHandlerStatus eventHandlerStatus)

这就是它看起来的样子。

我查看了程序集,我注意到第三个参数附加了'ref'关键字。我把它添加到我的代码中,它工作了:

private void FingerprintVerificationControl_OnComplete(object control, DPFP.FeatureSet featureSet, ref DPFP.Gui.EventHandlerStatus eventHandlerStatus)