【问题标题】:Run method after progress bar reaches 100%进度条达到100%后运行方法
【发布时间】:2016-10-20 15:46:40
【问题描述】:

我正在使用下面的代码来调用writecsv() 方法。

if (read_success == true && global_variables.csvtext == "not found")
               {

                   writecsv(null, null);

               }

我想要做的是,我需要在 windows 窗体上显示一个进度条,一旦达到 100%(大约 4 秒)我想调用writecsv() 方法。

下面是我用于进度条的代码。

csvprogressbar.Maximum = 10000;
                   csvprogressbar.Step = 1;
                   csvprogressbar.Value = 0;
                   for (int i = 0; i < 10000; i++)
                   {
                       csvprogressbar.Value = i;
                   }

我通过互联网搜索,但找不到明确的代码。

我对使用 C# 进行编程相当陌生,所以如果有人能在这方面帮助我,我将不胜感激。

干杯。

【问题讨论】:

  • 请贴出增加进度条值的代码
  • 仍然看不到增加进度条值的代码。你可能想错了。无论是什么将您的进度条设置为 100 也可能负责调用 writecsv 但我们看不到您的代码,所以...
  • 下面是我用的那个。但是不知道如何让方法在进度条达到100%后运行csvprogressbar.Maximum = 10000; csvprogressbar.Step = 1; csvprogressbar.Value = 0; for (int i = 0; i &lt; 10000; i++) { csvprogressbar.Value = i; }
  • 把它放在你原来的问题中而不是 cmets :)
  • 看看你的代码:当 for 循环完成时,你的进度条将不可避免地达到 100%。那么你可以调用你的方法......

标签: c# progress-bar


【解决方案1】:

好的,这是我使用的代码。现在一切正常。

会被backgroundWorker1.RunWorkerAsync();调用

 private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            for (int i = 0; i <= 100; i++ )
            {
                simulateHeavyWork();
                backgroundWorker1.ReportProgress(i);
            }
        }
        private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            csvprogressbar.Value = e.ProgressPercentage;
        }
        private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            writecsv(null, null);
        }
        private void simulateHeavyWork() 
        {
            Thread.Sleep(40);
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-22
    • 1970-01-01
    • 2020-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-06
    相关资源
    最近更新 更多