Pergunta

Eu estou baixando uma coleção de arquivos, e eu gostaria de exibir o progresso em uma barra de progresso. É simples para exibir o progresso geral, definindo o valor máximo da barra de progresso para o tamanho total de todos os arquivos, e definindo a posição atual para o tamanho baixado até agora.

O que eu gostaria de fazer é separar a barra de progresso em segmentos, com cada seção representando um arquivo diferente na coleção.

Isso é possível? Como eu faria isso?

Foi útil?

Solução

Se você sabe o tamanho total dos arquivos a serem baixados, e você sabe o tamanho total dos arquivos baixado até agora, então você pode apenas definir .Maximum para o tamanho total dos arquivos e .Position ao total baixado até agora. Não há necessidade de se preocupar sobre como o tamanho é dividida entre os arquivos.

Ou você quis dizer que você quer marcas de escala na barra de progresso de acordo com o tamanho de cada arquivo?

Outras dicas

Eu acho que a maneira mais fácil seria fazer um UserControl, soltar um ProgressBar sobre ele, substituir OnPaint do UserControl () e tire suas linhas.

Eu acho que um UserControl seria um pouco mais fácil de lidar do que desenhar direito no formulário. As coordenadas seria mais fácil de manusear mais que seria mais fácil para reutilizá-lo em outro aplicativo.

Defina o valor máximo de 100. Então, para cada arquivo que é baixado do 100 * (file_size / total_download_size) e adicioná-los juntos. Assim que tiver o valor deles somados, definir o valor da barra de progresso. Atualize o valor cada vez que um arquivo termina o download.

Você pode usar duas barras de progresso uma para cada arquivo e um para total. Ou se você quiser marcas de escala:. Uma solução simples é adicionar algumas linhas acima ou abaixo daquele bar

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top