ProgressBar如何显示时间进度?例如,有两个ProgressBar,它们是相互独立的,没有联系。只是放在同一个窗体里。用户在TextBoxStart里,输入起始时刻,在TextBoxEnd里,输入结束时刻。ProgressBar1就显示这个时间的进度,就是从起始时刻到结束时刻。
另外,用户在TextBoxQuantum里,输入一个时间段。ProgressBar2就显示倒数的时间进度,就是一个倒数的定时器。它的进度最好是从右到左的,因为是倒数。
请问,这个用C#如何实现?谢谢!
是不是很难?又要计算时间差,又要控制ProgressBar

解决方案 »

  1.   

    时间如何相加减?还有,如何保证,用户在TextBox里输入的是正确的时间格式? 如果用户输入不正确的,或任意的字符,程序就会出错了。
      

  2.   

    一点都不难。 
    添加一个按钮,一个Timer控件。
    按钮启动Timer,并计算时间差 totalsec;在Timer的Trig事件中判断起始时间。
    达到起始时间后
    一个ProgressBar的Value ++(初始Value为0),另个--(初始Value为totalsec);
      

  3.   

    我写一下,你看看行不。
    ProgressBar1.Value = 0;
    ProgressBar1.Maximum  = DateTime.Parse(TextBoxEnd.Text) - DateTime.parse(TextBoxStart.Text); 
    //不清楚你控制进度的时间间隔(秒?分钟?小时?)将差值转换成你的timer的中断间隔。
    timer1.Start(); //设置结束启动timer
    //在time的tick事件中写上ProgressBar1.Value ++;大致类似下面
    private void timer1_Tick(object sender, EventArgs e)
    {
      ProgressBar1.Value ++;
      this.progressBar1.Update();
    }第二个就简单一点了。
    ProgressBar2.Maximum = int.Parse(TextBoxQuantum.Text);
    ProgressBar2.Value = ProgressBar2.Maximum;
    timer2.Start();
    //tick事件中对ProgressBar2.Value做减法就行。
    private void timer2_Tick(object sender, EventArgs e)
    {
      ProgressBar2.Value --;
      this.progressBar1.Update();
    }
      

  4.   

    保证输入是时间格式的可以用正则,不知道lZ是否知道ProgressBar的基本用法,你想一秒加一次还是一分钟加一次,还可以设置一个固定长度,用百分比去让ProgressBar移动,建议LZ先看下ProgressBar的基本用法.