Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
El ToolStripProgressBar control reemplaza y agrega funcionalidad al ProgressBar control; sin embargo, el ProgressBar control se conserva tanto para la compatibilidad con versiones anteriores como para el uso futuro, si lo desea.
.NET Framework proporciona varias maneras diferentes de mostrar un valor determinado dentro del ProgressBar control. El enfoque que elija dependerá de la tarea a mano o del problema que está solucionando. En la tabla siguiente se muestran los enfoques que puede elegir.
Enfoque | Descripción |
---|---|
Establezca el valor del ProgressBar control directamente. | Este enfoque es útil para las tareas en las que conoce el total del elemento medido que se verá implicado, como leer registros de un origen de datos. Además, si solo necesita establecer el valor una o dos veces, esta es una manera fácil de hacerlo. Por último, use este proceso si necesita reducir el valor mostrado por la barra de progreso. |
Aumente la ProgressBar presentación por un valor fijo. | Este enfoque es útil cuando se muestra un recuento simple entre el mínimo y el máximo, como el tiempo transcurrido o el número de archivos que se han procesado fuera de un total conocido. |
Aumente la ProgressBar presentación por un valor que varía. | Este enfoque es útil cuando es necesario cambiar el valor mostrado varias veces en diferentes cantidades. Un ejemplo mostraría la cantidad de espacio en disco duro que se consume mientras se escribe una serie de archivos en el disco. |
La manera más directa de establecer el valor mostrado por una barra de progreso es estableciendo la Value propiedad . Esto se puede hacer en tiempo de diseño o en tiempo de ejecución.
Para establecer directamente el valor de la barra de progreso
Establezca los valores de ProgressBar y Minimum del control Maximum.
En el código, establezca la propiedad del Value control en un valor entero entre los valores mínimo y máximo que ha establecido.
Nota:
Si establece la Value propiedad fuera de los límites establecidos por las Minimum propiedades y Maximum , el control produce una ArgumentException excepción.
En el ejemplo de código siguiente se muestra cómo establecer el ProgressBar valor directamente. El código lee los registros de un origen de datos y actualiza la barra de progreso y etiqueta cada vez que se lee un registro de datos. En este ejemplo se requiere que el formulario tenga un Label control, un ProgressBar control y una tabla de datos con una fila denominada
CustomerRow
conFirstName
campos yLastName
.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(); }
Si muestra un progreso que avanza a intervalos fijos, puede establecer el valor y, a continuación, llamar a un método que aumente el valor del control ProgressBar en ese intervalo. Esto es útil para los temporizadores y otros escenarios en los que no se mide el progreso como un porcentaje de todo.
Para aumentar la barra de progreso por un valor fijo
Establezca los valores de ProgressBar y Minimum del control Maximum.
Establezca la propiedad del Step control en un entero que representa la cantidad para aumentar el valor mostrado de la barra de progreso.
Llame al método PerformStep para cambiar el valor mostrado según la cantidad establecida en la propiedad Step.
En el ejemplo de código siguiente se muestra cómo una barra de progreso puede mantener un recuento de los archivos en una operación de copia.
En el ejemplo siguiente, a medida que cada archivo se lee en la memoria, la barra de progreso y la etiqueta se actualizan para reflejar el total de archivos leídos. En este ejemplo, se requiere que tu formulario incluya un control Label y un control ProgressBar.
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(); } }
Por último, puede aumentar el valor mostrado por una barra de progreso para que cada aumento sea una cantidad única. Esto resulta útil cuando se realiza un seguimiento de una serie de operaciones únicas, como escribir archivos de diferentes tamaños en un disco duro o medir el progreso como un porcentaje de todo.
Para aumentar la barra de progreso con un valor dinámico
Establezca los valores de ProgressBar y Minimum del control Maximum.
Llame al Increment método para cambiar el valor mostrado por un entero que especifique.
En el ejemplo de código siguiente se muestra cómo una barra de progreso puede calcular cuánto espacio en disco se ha usado durante una operación de copia.
En el ejemplo siguiente, a medida que cada archivo se escribe en el disco duro, la barra de progreso y la etiqueta se actualizan para reflejar la cantidad de espacio disponible en disco duro. En este ejemplo, se requiere que tu formulario incluya un control Label y un control ProgressBar.
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 también
.NET Desktop feedback