David Daks
David Daks

Reputation: 139

Update Progress bar from Class' BackgroundWorker

I am trying to update progress bar from the class that does the copying

In the my copy class I have

public event EventHandler Copy_OnProgressChange;

private void CopyWorker_ProgressChanged(object sender, System.ComponentModel.ProgressChangedEventArgs e)
        {
            EventHandler handler = Copy_OnProgressChange;
            if (handler != null) handler(this, e);
        }

And in the main class

CopyList[i].Copy_OnProgressChange += CopyProgressMessage;

    void CopyProgressMessage(object sender, EventArgs e)
    {
      //update progressBar with percentage
    }

As you can see I can not pass percentage from ProgressChangedEventArgs to eventhandler. Is there an easy way to fix this?

Upvotes: 0

Views: 188

Answers (2)

poy
poy

Reputation: 10507

It doesn't look like your event handler isn't structured correctly... It requires the second argument to be: ProgressChangedEventArgs instead of EventArgs...

ProgressChangedEventArgs has a property named: ProgressPercentage.

Upvotes: 2

SLaks
SLaks

Reputation: 887245

You should change your event to be EventHandler<ProgressChangedEventArgs>, so that it will pass the derived type with the progress property.

Upvotes: 2

Related Questions