2009-01-04 53 views
1

我正在下载一组文件,并且想要在进度条中显示进度。通过将进度条的最大值设置为所有文件的总大小,并将当前位置设置为迄今为止下载的大小,可以很容易地显示整体进度。如何在进度条上显示刻度线?

我想要做的是将进度条分成几部分,每部分代表集合中的不同文件。

这可能吗?我会怎么做?

+0

这个问题可能应该重写。 – 2009-01-04 08:32:51

+0

我根据迄今为止的答案和评论重写了它。 – 2009-01-04 08:34:37

回答

0

如果您知道要下载的文件的总大小,并且您知道迄今为止下载的文件的总大小,那么您可以将.Maximum设置为文件的总大小,并将.Position设置为总计下载到目前为止。无需担心文件之间的大小如何分割。

或者你的意思是你想根据每个文件的大小在进度条上打勾?

3

我认为最简单的方法是做一个UserControl,放一个ProgressBar,覆盖UserControl的OnPaint()并绘制线条。

我认为用户控件比在图形上绘制右图更容易处理。坐标将更容易处理,再加上在另一个应用程序中重用它会更容易。

0

将最大值设置为100.然后对于下载的每个文件执行100 *(file_size/total_download_size)并将它们添加在一起。一旦你将它们的价值加在一起,设置进度条的值。每次文件完成下载时更新该值。

0

您可以为每个文件使用两个进度条,总数为1。或者如果你想要勾选标记:简单的解决方案是在该栏下方或上方添加一些行。