Hello,
I create few progress bars programmatic and try update from one background worker ...
But updated only one of created progress bar . My programm copy files . All files copied where but i see progress changed only in last one(progress bar). Need help. Thanks.
public void startCopyFile(string srcFile, string destFile)
{
FileToCopy = srcFile;
CopyToDest = destFile;
//Date - Time
Label lbdatetime = new Label();
lbdatetime.Text = DateTime.Now.ToLocalTime().ToString();
lbdatetime.Size = new Size(120, 20);
lbdatetime.Location = new Point(x_step, y_step + 1);
lbdatetime.Font = new Font("Arial", 9);
panelProgress.Controls.Add(lbdatetime);
//File name
Label lbfilename = new Label();
lbfilename.Text = FileToCopy;
lbfilename.Size = new Size(FileToCopy.PadRight(400).Length, 20);
lbfilename.Location = new Point(150, y_step);
lbfilename.Font = new Font("Arial", 10);
lbfilename.ForeColor = Color.BlueViolet;
panelProgress.Controls.Add(lbfilename);
//Progress bar
bar = new ProgressBar();
bar.Name = name_.ToString();
bar.Location = new Point(FileToCopy.PadRight(400).Length + 180, y_step);
bar.Size = new Size(115, 15);
panelProgress.Controls.Add(bar);
panelProgress.Controls.Add(bar);
//Percentage
lbper = new Label();
lbper.Text = FileToCopy;
lbper.Size = new Size(60, 20);
lbper.Location = new Point(FileToCopy.PadRight(700).Length + 20, y_step);
lbper.Font = new Font("Arial", 10);
lbper.ForeColor = Color.Green;
panelProgress.Controls.Add(lbper);
x_step = 10;
y_step += 20;
name_++;
mCopier = new BackgroundWorker();
mCopier.WorkerReportsProgress = true;
mCopier.DoWork += Copier_DoWork;
mCopier.RunWorkerCompleted += Copier_RunWorkerCompleted;
mCopier.WorkerSupportsCancellation = true;
mCopier.ProgressChanged += new ProgressChangedEventHandler(mCopier_ProgressChanged);
mCopier.RunWorkerAsync(this.bar.Name);
}
private void mCopier_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
bar.Value = e.ProgressPercentage;
lbper.Text = e.ProgressPercentage.ToString() + "%"; bar.Value = e.ProgressPercentage;
}