Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Importante
O controle ToolStripProgressBar substitui e adiciona funcionalidade ao controle ProgressBar; no entanto, o controle ProgressBar é mantido para compatibilidade com versões anteriores e uso futuro, se você escolher.
O .NET Framework oferece várias maneiras diferentes de exibir um determinado valor dentro do ProgressBar controle. A abordagem escolhida dependerá da tarefa em questão ou do problema que está a resolver. A tabela a seguir mostra as abordagens que você pode escolher.
| Abordagem | Descrição |
|---|---|
| Defina o valor do controlo ProgressBar diretamente. | Essa abordagem é útil para tarefas em que você sabe o total do item medido que estará envolvido, como ler registros de uma fonte de dados. Além disso, se você só precisa definir o valor uma ou duas vezes, esta é uma maneira fácil de fazê-lo. Finalmente, use esse processo se precisar diminuir o valor exibido pela barra de progresso. |
| Aumente o ProgressBar display por um valor fixo. | Essa abordagem é útil quando você está exibindo uma contagem simples entre o mínimo e o máximo, como o tempo decorrido ou o número de arquivos que foram processados de um total conhecido. |
| Aumente a ProgressBar exibição em um valor que varia. | Essa abordagem é útil quando você precisa alterar o valor exibido várias vezes em quantidades diferentes. Um exemplo seria mostrar a quantidade de espaço no disco rígido que está sendo consumida durante a gravação de uma série de arquivos no disco. |
A maneira mais direta de definir o valor exibido por uma barra de progresso é definindo a Value propriedade. Isso pode ser feito em tempo de design ou em tempo de execução.
Para definir o valor do ProgressBar diretamente
Defina os valores de ProgressBar e Minimum do controlo Maximum.
No código, defina a propriedade do Value controle como um valor inteiro entre os valores mínimo e máximo que você estabeleceu.
Observação
Se você definir a Value propriedade fora dos limites estabelecidos pelas Minimum propriedades e Maximum , o controle lançará uma ArgumentException exceção.
O exemplo de código a seguir ilustra como definir o ProgressBar valor diretamente. O código lê registros de uma fonte de dados e atualiza a barra de progresso e o rótulo sempre que um registro de dados é lido. Este exemplo requer que seu formulário tenha um Label controle, um ProgressBar controle e uma tabela de dados com uma linha chamada
CustomerRowcomFirstNameeLastNamecampos.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 Subpublic 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 progresso que prossegue por um intervalo fixo, você pode definir o valor e, em seguida, chamar um método que aumenta o ProgressBar valor do controle por esse intervalo. Isso é útil para temporizadores e outros cenários em que você não está medindo o progresso como uma porcentagem do todo.
Para aumentar a barra de progresso em um valor fixo
Defina os valores de ProgressBar e Minimum do controlo Maximum.
Defina a propriedade Step do controlo para um número inteiro que represente a quantidade a adicionar ao valor exibido da barra de progresso.
Chame o método PerformStep para alterar o valor mostrado pela quantia definida na propriedade Step.
O exemplo de código a seguir ilustra como uma barra de progresso pode manter uma contagem dos arquivos em uma operação de cópia.
No exemplo a seguir, à medida que cada arquivo é lido na memória, a barra de progresso e o rótulo são atualizados para refletir o total de arquivos lidos. Este exemplo requer que seu formulário tenha 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 Subpublic 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 uma barra de progresso para que cada aumento seja um valor exclusivo. Isso é útil quando você está acompanhando uma série de operações exclusivas, como gravar arquivos de tamanhos diferentes em um disco rígido ou medir o progresso como uma porcentagem do todo.
Para aumentar o valor da barra de progresso dinamicamente
Defina os valores de ProgressBar e Minimum do controlo Maximum.
Chame o método Increment para alterar o valor exibido por um inteiro que especificar.
O exemplo de código a seguir ilustra como uma barra de progresso pode calcular quanto espaço em disco foi usado durante uma operação de cópia.
No exemplo a seguir, à medida que cada arquivo é gravado no disco rígido, a barra de progresso e o rótulo são atualizados para refletir a quantidade de espaço disponível no disco rígido. Este exemplo requer que seu formulário tenha 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 Subpublic 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(); } }
Ver também
.NET Desktop feedback