【问题标题】:Progress bar or Timer combined进度条或计时器组合
【发布时间】:2012-07-10 22:28:24
【问题描述】:

我正在尝试让计时器计时 80 分钟,而进度条会跟踪当前时间,但 C# Forms 中的进度条不会精确到计时器计时。我将它设置为计时器每 1000 毫秒滴答一次,在该滴答声中,它将向进度条添加一个步骤。进度条不会像计时器一样正常工作,有谁知道如何解决这个问题?

public Form1()
{
    InitializeComponent();
    initTimers();
}

public void timer1_Tick(object sender, EventArgs e)
{
    progressBar1.Increment(1);
}

private void button1_Click(object sender, EventArgs e)
{
    if (button1.Text == "Go")
    {
        timer1.Start();
        button1.Text = "Stop";
    }
    else
    {
        timer1.Stop();
        button1.Text = "Go";
    }
}

public void initTimers()
{
    timer1.Tick += new EventHandler(timer1_Tick);
    timer1.Interval = 1000;
}

public void progressTimers()
{
    progressBar1.Value = 0;
    progressBar1.Minimum = 0;
    progressBar1.Maximum = 2;
    progressBar1.Step = 1;
    progressBar1.Visible = true;
}

【问题讨论】:

  • 您能否提供一些代码来帮助更好地诊断问题。
  • "每 1000 毫秒打勾一次" 说每秒一次不是更简单吗?另外:80 * 60 = 4800。你还有 4800 像素可以玩吗?
  • 您能否在问题中内联发布,工作防火墙不让我们看到粘贴箱。
  • 进度条不能和计时器一起工作吗?怎么了?在您的代码中,进度条的最大值为 2;到底是为了什么?你知道什么是最大值吗?事实上,你甚至不调用函数 progressTimers(),但我假设你想在函数 Form1() 中调用它。
  • 基本上是您需要的确切代码。 stackoverflow.com/questions/7259511/…

标签: c# forms timer progress-bar


【解决方案1】:

你需要改变这一行:

progressBar1.Maximum = 2;

到:

progressBar1.Maximum = 80 * 60; // minutes * 60

并确保您致电progressTimers() :)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多