我正在下载一组文件,并且想要在进度条中显示进度。通过将进度条的最大值设置为所有文件的总大小,并将当前位置设置为迄今为止下载的大小,可以很容易地显示整体进度。如何在进度条上显示刻度线?
我想要做的是将进度条分成几部分,每部分代表集合中的不同文件。
这可能吗?我会怎么做?
我正在下载一组文件,并且想要在进度条中显示进度。通过将进度条的最大值设置为所有文件的总大小,并将当前位置设置为迄今为止下载的大小,可以很容易地显示整体进度。如何在进度条上显示刻度线?
我想要做的是将进度条分成几部分,每部分代表集合中的不同文件。
这可能吗?我会怎么做?
如果您知道要下载的文件的总大小,并且您知道迄今为止下载的文件的总大小,那么您可以将.Maximum设置为文件的总大小,并将.Position设置为总计下载到目前为止。无需担心文件之间的大小如何分割。
或者你的意思是你想根据每个文件的大小在进度条上打勾?
我认为最简单的方法是做一个UserControl,放一个ProgressBar,覆盖UserControl的OnPaint()并绘制线条。
我认为用户控件比在图形上绘制右图更容易处理。坐标将更容易处理,再加上在另一个应用程序中重用它会更容易。
将最大值设置为100.然后对于下载的每个文件执行100 *(file_size/total_download_size)并将它们添加在一起。一旦你将它们的价值加在一起,设置进度条的值。每次文件完成下载时更新该值。
您可以为每个文件使用两个进度条,总数为1。或者如果你想要勾选标记:简单的解决方案是在该栏下方或上方添加一些行。
这个问题可能应该重写。 – 2009-01-04 08:32:51
我根据迄今为止的答案和评论重写了它。 – 2009-01-04 08:34:37