Domanda

Sto scaricando una raccolta di file e vorrei visualizzare i progressi in una barra di avanzamento. È semplice visualizzare l'avanzamento complessivo impostando il valore massimo della barra di avanzamento sulla dimensione totale di tutti i file e impostando la posizione corrente sulla dimensione scaricata finora.

Quello che mi piacerebbe fare è separare la barra di avanzamento in segmenti, con ogni sezione che rappresenta un file diverso nella raccolta.

È possibile? Come lo farei?

È stato utile?

Soluzione

Se conosci la dimensione totale dei file da scaricare e conosci la dimensione totale dei file scaricati finora, puoi semplicemente impostare .Massimo sulla dimensione totale dei file e .Posizione sul totale scaricato finora. Non devi preoccuparti di come la dimensione è suddivisa tra i file.

O volevi dire che vuoi segni di spunta sulla barra di avanzamento in base alle dimensioni di ciascun file?

Altri suggerimenti

Penso che il modo più semplice sarebbe quello di creare un UserControl, far cadere un ProgressBar su di esso, sovrascrivere OnPaint () di UserControl e tracciare le tue linee.

Penso che un UserControl sarebbe un po 'più facile da gestire che disegnare direttamente sul modulo. Le coordinate sarebbero più facili da gestire e sarebbe più facile riutilizzarle in un'altra applicazione.

Imposta il valore massimo su 100. Quindi per ogni file scaricato esegui 100 * (file_size / total_download_size) e sommali. Dopo averne sommato il valore, imposta il valore della barra di avanzamento. Aggiorna il valore ogni volta che un file termina il download.

È possibile utilizzare due barre di avanzamento, una per ciascun file e una per il totale. Oppure, se desideri i segni di spunta: la soluzione semplice è aggiungere alcune righe sotto o sopra quella barra.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top