0

我正在尝试在进度条中显示标签后更改它的文本,我想显示正在上传的文件数量以及到目前为止的数量。

我创建了一个 ProgressBar winform,我的(初学者)计划是这样做的:

public StatusUpload(String saved)
    {
        InitializeComponent();
        timer1.Start();
        timer1.Enabled = true;
        AmountSaved.Text = saved;
    }

但是当我尝试从另一个类更改它时,我只能在开始时定义它

StatusUpload Progressbar = new StatusUpload("Total Saved: 0/" + selection.Count);

以后改不了了,怎么办?(我想稍后在循环期间更改它,以便我可以写 1/2,然后在最后的循环 2/2 之后)

4

1 回答 1

2

如果您在后台做大量工作。我建议使用后台工作者:http: //msdn.microsoft.com/de-de/library/system.componentmodel.backgroundworker.aspx

当您要上传数据时,您会生成 Backgroundworker。然后订阅事件:

public event DoWorkEventHandler DoWork

把你的上传代码放在这里。在你完成 1/2 个文件之后,你调用ReportProgress(1);

   public event ProgressChangedEventHandler ProgressChanged

如果您调用ReportProgress();. 然后你更新你的进度条:

this.yourProgressBar.Value = e.ProgressPercentage;

}

public event RunWorkerCompletedEventHandler RunWorkerCompleted

是您完成工作后引发的事件。

于 2013-05-25T14:37:29.507 回答