Esta documentación está archivada y no tiene mantenimiento.

ProgressBar (Clase)

Representa un control de barra de progreso de Windows.

Espacio de nombres: System.Windows.Forms
Ensamblado: System.Windows.Forms (en system.windows.forms.dll)

[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] 
[ComVisibleAttribute(true)] 
public class ProgressBar : Control
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */ 
/** @attribute ComVisibleAttribute(true) */ 
public class ProgressBar extends Control
ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) 
ComVisibleAttribute(true) 
public class ProgressBar extends Control
No aplicable.

Un control ProgressBar indica visualmente el progreso de una operación larga en uno de los tres estilos siguientes:

  • Bloques segmentados que aumentan en pasos de izquierda a derecha.

  • Una barra continua que se rellena de izquierda a derecha.

  • Un bloque que se desplaza por una ProgressBar en modo de marquesina.

La propiedad Style determina el estilo de ProgressBar que se muestra. Tenga en cuenta que el control ProgressBar sólo puede tener orientación horizontal. Para obtener un ejemplo de cómo crear un ProgressBar orientado verticalmente, vea la clase ProgressBarRenderer. Normalmente, el control ProgressBar se utiliza cuando una aplicación realiza tareas como copiar archivos o imprimir documentos. Los usuarios de una aplicación podrían pensar que ésta no responde si no se les ofrece una señal visual. Utilizando el control ProgressBar en la aplicación, se indica al usuario que la aplicación responde y que está realizando una tarea larga.

Las propiedades Maximum y Minimum definen el intervalo de valores que representarán el progreso de una tarea. Normalmente, la propiedad Minimum se establece en 0, y la propiedad Maximum se establece en un valor que indica que la tarea ha terminado. Por ejemplo, para mostrar correctamente el progreso al copiar un grupo de archivos, la propiedad Maximum se podría establecer en el número total de archivos que se van a copiar.

La propiedad Value representa el progreso que la aplicación realiza para terminar la operación. El valor mostrado por ProgressBar sólo aproxima el valor actual de la propiedad Value. Según el tamaño del control ProgressBar, la propiedad Value determina cuándo se debe mostrar el siguiente bloque o aumentar el tamaño de la barra.

Existen varias maneras de modificar el valor que muestra el control ProgressBar además de modificar la propiedad Value directamente. Se puede utilizar la propiedad Step para especificar el valor con que se incrementará la propiedad Value y, después, llamar al método PerformStep para incrementar ese valor. Para variar el valor de incremento, utilice el método Increment y especifique el valor con que se incrementará la propiedad Value.

NotaNota:

Los cambios de ForeColor yBackColor para ProgressBar no se aplicarán cuando se habiliten los estilos visuales en Windows XP Home Edition, Windows XP Professional, Windows Server 2003 y posteriores.

En el siguiente ejemplo de código se utiliza un control ProgressBar para mostrar el progreso de una operación de copia de archivos. En el ejemplo se utilizan las propiedades Minimum y Maximum para especificar un intervalo para ProgressBar que equivale al número de archivos que se va a copiar. En el código también se utiliza la propiedad Step con el método PerformStep para incrementar el valor del control ProgressBar a medida que se copia un archivo. En este ejemplo se requiere que se haya creado un control ProgressBar denominado pBar1 dentro de un control Form, y que se haya creado un método denominado CopyFile (que devuelve un valor de tipo booleano que indica si la operación de copia de archivos terminó correctamente) que realice la operación de copia de archivos. En el código también se requiere que se haya creado una matriz de cadenas que contengan los archivos que se van a copiar y se haya pasado al método CopyWithProgress definido en el ejemplo, así como que el método se llame desde otro método o evento del control Form.

private void CopyWithProgress(string[] filenames)
{
    // Display the ProgressBar control.
    pBar1.Visible = true;
    // Set Minimum to 1 to represent the first file being copied.
    pBar1.Minimum = 1;
    // Set Maximum to the total number of files to copy.
    pBar1.Maximum = filenames.Length;
    // Set the initial value of the ProgressBar.
    pBar1.Value = 1;
    // Set the Step property to a value of 1 to represent each file being copied.
    pBar1.Step = 1;
    
    // Loop through all files to copy.
    for (int x = 1; x <= filenames.Length; x++)
    {
        // Copy the file and increment the ProgressBar if successful.
        if(CopyFile(filenames[x-1]) == true)
        {
            // Perform the increment on the ProgressBar.
            pBar1.PerformStep();
        }
    }
}

private void CopyWithProgress(String fileNames[])
{
    // Display the ProgressBar control.
    pBar1.set_Visible(true);
    // Set Minimum to 1 to represent the first file being copied.
    pBar1.set_Minimum(1);
    // Set Maximum to the total number of files to copy.
    pBar1.set_Maximum(fileNames.get_Length());
    // Set the initial value of the ProgressBar.
    pBar1.set_Value(1);
    // Set the Step property to a value of 1 to represent each file
    // being copied.
    pBar1.set_Step(1);
    // Loop through all files to copy.
    for (int x = 1; x <= fileNames.get_Length(); x++) {
        // Copy the file and increment the ProgressBar if successful.
        if (CopyFile(fileNames[(x - 1)]) == true) {
            // Perform the increment on the ProgressBar.
            pBar1.PerformStep();
        }
    }
} //CopyWithProgress

System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Windows.Forms.Control
        System.Windows.Forms.ProgressBar

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0, 1.0
Mostrar: