我正在尝试在进度条中显示后更改标签的文本, 我想显示正在上传的文件数量,以及到目前为止的数量。
我创建了一个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之后)
答案 0 :(得分: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
是你完成工作后抛出的事件。