Como: Defina o valor exibido pelo controle ProgressBar do Windows Forms
Observação importante: |
---|
O ToolStripProgressBar controle substitui e adiciona funcionalidade a ProgressBar controle; no entanto, o ProgressBar controle é mantida para compatibilidade com versões anteriores e para uso futuro, se você escolher. |
The .NET Framework proporciona várias maneiras diferentes para exibir um determinado valor dentro de ProgressBar controle. Qual abordagem você escolher depende da tarefa à mão ou o você é para solução de problemas.A tabela a seguir mostra as abordagens que você pode escolher.
Abordagem |
Descrição |
---|---|
conjunto o valor de ProgressBar controle diretamente. |
Essa abordagem é útil para sistema autônomo tarefas em que você sabe que o total de item medido que será envolvido, sistema autônomo a leitura de registros de uma fonte de dados.Além disso, se você só precisará conjunto o valor de uma ou duas vezes, isso é uma maneira fácil de fazê-lo.Por fim, use esse processo se você precisar diminuir o valor exibido pelo BAR de progresso. |
Aumentar o ProgressBar Exibir um valor fixo. |
Essa abordagem é útil quando você está exibindo uma contagem simples entre o mínimo e máximo, sistema autônomo time decorrido ou o número de arquivos que foram processadas fora de um total de conhecidos. |
Aumentar o ProgressBar Exibir um valor que varia de acordo. |
Essa abordagem é útil quando você precisar alterar o valor exibido um número de vezes em diferentes valores.Um exemplo poderia ser mostrando a quantidade de espaço em disco rígido sendo consumida durante a gravação de uma série de arquivos no disco. |
Mais direcionam de maneira de conjunto o valor exibido por um BAR de progresso está definindo o Value propriedade. Isso pode ser concluído em time de design ou em time de execução.
Para conjunto o valor de ProgressBar diretamente
conjunto o ProgressBar do controle Minimum e Maximum valores.
No código, conjunto Value propriedade um valor inteiro entre os valores mínimos e máximo estabelecido.
Observação: Se você conjunto o Value propriedade fora dos limites estabelecidos pela Minimum e Maximum Propriedades, o controle lança um ArgumentException exceção.
O exemplo de código a seguir ilustra como conjunto o ProgressBar valor diretamente. O código lê registros de uma fonte de dados e as atualizações a BAR de progresso e rotular sempre que um registro de dados é lidos.Este exemplo requer que o formulário tem um Label controle, uma ProgressBar controle e uma tabela de dados com uma linha chamada CustomerRow com FirstName e Last Name campos.
Public Sub CreateNewRecords() ' Sets the progress bar's Maximum property to ' the total number of records to be created. ProgressBar1.Maximum = 20 ' Creates a new record in the dataset. ' NOTE: The code below will not compile, it merely ' illustrates how the progress bar would be used. Dim anyRow As CustomerRow = DatasetName.ExistingTable.NewRow anyRow.FirstName = "Stephen" anyRow.LastName = "James" ExistingTable.Rows.Add(anyRow) ' Increases the value displayed by the progress bar. ProgressBar1.Value += 1 ' Updates the label to show that a record was read. Label1.Text = "Records Read = " & ProgressBar1.Value.ToString() End Sub
public void createNewRecords() { // Sets the progress bar's Maximum property to // the total number of records to be created. progressBar1.Maximum = 20; // Creates a new record in the dataset. // NOTE: The code below will not compile, it merely // illustrates how the progress bar would be used. CustomerRow anyRow = DatasetName.ExistingTable.NewRow(); anyRow.FirstName = "Stephen"; anyRow.LastName = "James"; ExistingTable.Rows.Add(anyRow); // Increases the value displayed by the progress bar. progressBar1.Value += 1; // Updates the label to show that a record was read. label1.Text = "Records Read = " + progressBar1.Value.ToString(); }
Se você estiver exibindo o andamento prossegue com um intervalo fixo, você pode conjunto o valor e, em seguida, telefonar um método que aumenta o ProgressBar valor do controle pelo intervalo. Isso é útil para timers e outros cenários em que você não está medindo andamento sistema autônomo uma porcentagem do todo.
Para aumentar o BAR de progresso por um valor fixo
conjunto o ProgressBar do controle Minimum e Maximum valores.
conjunto Step propriedade para um inteiro que representa o valor para aumentar o BAR de progresso's exibida valor.
Chamar o PerformStep método para alterar o valor exibido pelo valor definido Step propriedade.
O exemplo de código a seguir ilustra como um BAR de progresso pode manter uma contagem de arquivos em uma operação de cópia.
No exemplo a seguir, sistema autônomo cada arquivo é lido na memória, a BAR de progresso e rótulo são atualizados para refletir que leitura total de arquivos.Este exemplo requer que o formulário tem um Label controle e um ProgressBar controle.
Public Sub LoadFiles() ' Sets the progress bar's minimum value to a number representing ' no operations complete -- in this case, no files read. ProgressBar1.Minimum = 0 ' Sets the progress bar's maximum value to a number representing ' all operations complete -- in this case, all five files read. ProgressBar1.Maximum = 5 ' Sets the Step property to amount to increase with each iteration. ' In this case, it will increase by one with every file read. ProgressBar1.Step = 1 ' Dimensions a counter variable. Dim i As Integer ' Uses a For...Next loop to iterate through the operations to be ' completed. In this case, five files are to be copied into memory, ' so the loop will execute 5 times. For i = 0 To 4 ' Insert code to copy a file ProgressBar1.PerformStep() ' Update the label to show that a file was read. Label1.Text = "# of Files Read = " & ProgressBar1.Value.ToString Next i End Sub
public void loadFiles() { // Sets the progress bar's minimum value to a number representing // no operations complete -- in this case, no files read. progressBar1.Minimum = 0; // Sets the progress bar's maximum value to a number representing // all operations complete -- in this case, all five files read. progressBar1.Maximum = 5; // Sets the Step property to amount to increase with each iteration. // In this case, it will increase by one with every file read. progressBar1.Step = 1; // Uses a for loop to iterate through the operations to be // completed. In this case, five files are to be copied into memory, // so the loop will execute 5 times. for (int i = 0; i <= 4; i++) { // Inserts code to copy a file progressBar1.PerformStep(); // Updates the label to show that a file was read. label1.Text = "# of Files Read = " + progressBar1.Value.ToString(); } }
Finalmente, você pode aumentar o valor exibido por um BAR de progresso para que cada aumentar um valor exclusivo.Isso é útil quando você estiver controlando de uma série de operações exclusivas, sistema autônomo gravar arquivos de tamanhos diferentes em um disco rígido ou avaliar o progresso sistema autônomo uma porcentagem do todo.
Para aumentar o BAR de progresso por um valor dinâmico
conjunto o ProgressBar do controle Minimum e Maximum valores.
telefonar the Increment método para alterar o valor exibido por um número inteiro que você especificar.
O exemplo de código a seguir ilustra como um BAR de progresso pode calcular a quantidade de espaço em disco foi usado durante uma operação de cópia.
No exemplo a seguir, sistema autônomo cada arquivo é gravado no disco rígido, a BAR de progresso e rótulo são atualizados para refletir a quantidade de espaço em disco disponível.Este exemplo requer que o formulário tem um Label controle e um ProgressBar controle.
Public Sub ReadFiles() ' Sets the progress bar's minimum value to a number ' representing the hard disk space before the files are read in. ' You will most likely have to set this using a system call. ' NOTE: The code below is meant to be an example and ' will not compile. ProgressBar1.Minimum = AvailableDiskSpace() ' Sets the progress bar's maximum value to a number ' representing the total hard disk space. ' You will most likely have to set this using a system call. ' NOTE: The code below is meant to be an example ' and will not compile. ProgressBar1.Maximum = TotalDiskSpace() ' Dimension a counter variable. Dim i As Integer ' Uses a For...Next loop to iterate through the operations to be ' completed. In this case, five files are to be written to the disk, ' so it will execute the loop 5 times. For i = 1 To 5 ' Insert code to read a file into memory and update file size. ' Increases the progress bar's value based on the size of ' the file currently being written. ProgressBar1.Increment(FileSize) ' Updates the label to show available drive space. Label1.Text = "Current Disk Space Used = " &_ ProgressBar1.Value.ToString() Next i End Sub
public void readFiles() { // Sets the progress bar's minimum value to a number // representing the hard disk space before the files are read in. // You will most likely have to set this using a system call. // NOTE: The code below is meant to be an example and // will not compile. progressBar1.Minimum = AvailableDiskSpace(); // Sets the progress bar's maximum value to a number // representing the total hard disk space. // You will most likely have to set this using a system call. // NOTE: The code below is meant to be an example // and will not compile. progressBar1.Maximum = TotalDiskSpace(); // Uses a for loop to iterate through the operations to be // completed. In this case, five files are to be written // to the disk, so it will execute the loop 5 times. for (int i = 1; i<= 5; i++) { // Insert code to read a file into memory and update file size. // Increases the progress bar's value based on the size of // the file currently being written. progressBar1.Increment(FileSize); // Updates the label to show available drive space. label1.Text = "Current Disk Space Used = " + progressBar1.Value.ToString(); } }
Consulte também
Referência
ProgressBar controle visão geral (Windows Forms)