No overload for 'method' matches delegate 'System.EventHandler'

55,872

Solution 1

The signature of the event-handler method isn't compatible with the delegate type.

Subsribers to the DispatcherTimer.Tick event must be of the EventHandler delegate type, which is declared as:

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

Try this instead:

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

Solution 2

If you using Windows phone 8.1 then you need the following

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

Solution 3

I know it might be a little bit late, but i just wanted to throw in a bit more for anyone with this problem:

timer.Tick += new EventHandler(Method);

public void Method(object sender, EventArgs e)
{
//Do Something
}

solves the Problem.

It can also be written like this: timer.Tick += Method;

timer.Tick += Method;

public void Method(object sender, EventArgs e)
{
//Do Something
}

Hope it helps!

Solution 4

Method OnTimed has to declared like this:

 private void OnTimed(object sender, EventArgs e)
 {
     // Do something
 }
Share:
55,872
kxtan
Author by

kxtan

Updated on July 09, 2022

Comments

  • kxtan
    kxtan almost 2 years

    I am trying to build a program that, once the button was click, every 5 second will perform the function (OnTimed).

    Below is the code so far:

    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);
    } 
    

    When i run the code, it show the error:

    "No overload for 'method' matches delegate 'System.EventHandler'

  • Admin
    Admin over 6 years
    Unfortunatly, this has nothing to do with the original question (which has already been sufficiently answered).
  • Cristian G
    Cristian G over 6 years
    Ye but I googled the title of this post and I found the answer being a different one than the one selected here. Can it be that hard for someone else to encounter the same problem like I did? I didn't post it for rep or w/e - I want to help others, that's the whole point for this site..
  • Admin
    Admin over 6 years
    The correct course of action would be to create your own question fitting your problem, complete with the right tags (Windows Forms, etc. ..) and answer it yourself.