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 に答える