【问题标题】:change label text while Winform is open [closed]Winform打开时更改标签文本[关闭]
【发布时间】:2013-05-20 23:19:08
【问题描述】:

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

我已经创建了一个 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 之后)

【问题讨论】:

  • 您需要将“Progressbar”设为类的成员,而不是局部变量。因此,您可以稍后在另一种方法中再次引用它。这与 [winforms] 没有任何关系,您会在许多书籍和学校中找到学习面向对象编程的帮助。

标签: c# winforms file-upload progress-bar label


【解决方案1】:

如果您在后台执行大量工作。我建议使用后台工作者: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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    相关资源
    最近更新 更多