谁能给我一个进度条的例子?

RunatServer 2007-02-27 12:25:06
想做个进度条,搞了半天学不会。

下面这个学习是我希望让进度条load30秒,这30秒内重复做一件事情,直到完成,则进度条结束。但是不行~谁教教我怎么搞?

private void MainForm_Shown(object sender, EventArgs e)
{
prgBar.Minimum = 1;
prgBar.Maximum = 30;
prgBar.Value = 1;
prgBar.Step = 1;

DateTime dtStart = DateTime.Now;
DateTime dtEnd = new DateTime(Convert.ToInt64(dtStart.Second + 30));

while (DateTime.Now != dtEnd)
{
prgBar.PerformStep();
}
}
...全文
286 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
maotin 2007-02-27
  • 打赏
  • 举报
回复
如果是2005最好用BackgroundWorker,2003最好用线程..
王集鹄 2007-02-27
  • 打赏
  • 举报
回复
while (DateTime.Now <= dtEnd)
{
TimeSpan vTimeSpan = new TimeSpan(dtEnd.Ticks - DateTime.Now.Ticks);
prgBar.Value = 30 - (int)vTimeSpan.TotalSeconds + 1;
Application.DoEvents();
}
王集鹄 2007-02-27
  • 打赏
  • 举报
回复
private void Form1_Shown(object sender, EventArgs e)
{
prgBar.Minimum = 1;
prgBar.Maximum = 30;
prgBar.Value = 1;
prgBar.Step = 1;

DateTime dtEnd = DateTime.Now.AddSeconds(30);

while (DateTime.Now <= dtEnd)
{
TimeSpan vTimeSpan = new TimeSpan(dtEnd.Ticks - DateTime.Now.Ticks);
Application.DoEvents();
}
}
maotin 2007-02-27
  • 打赏
  • 举报
回复
private void button4_Click(object sender, EventArgs e)
{
progressBar1.Minimum = 0;
progressBar1.Maximum = 30;
progressBar1.Step = 1;
for (int i = 0; i < 30; i++)
{
System.Threading.Thread.Sleep(1000);
progressBar1.PerformStep();
}
}
RunatServer 2007-02-27
  • 打赏
  • 举报
回复
我想让它load 30秒,咋做?
maotin 2007-02-27
  • 打赏
  • 举报
回复
这个是我测试的。。。
private void button4_Click(object sender, EventArgs e)
{
progressBar1.Minimum = 0;
progressBar1.Maximum = 3000;
progressBar1.Step = 1;
for (int i = 0; i < 3000; i++)
{
progressBar1.PerformStep();
}
}

private void button5_Click(object sender, EventArgs e)
{
progressBar1.Value = 0;
}
王集鹄 2007-02-27
  • 打赏
  • 举报
回复
private void button2_Click(object sender, EventArgs e)
{
prgBar.Tag = (object)true;
}

//...
while (DateTime.Now <= dtEnd)
{
TimeSpan vTimeSpan = new TimeSpan(dtEnd.Ticks - DateTime.Now.Ticks);
prgBar.Value = 30 - (int)vTimeSpan.TotalSeconds + 1;
if (prgBar.Tag != null) break;
Application.DoEvents();
}

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧