ProgressBar (Clase)
Actualización: noviembre 2007
Representa un control de barra de progreso de Windows.
Ensamblado: System.Windows.Forms (en System.Windows.Forms.dll)
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] [ComVisibleAttribute(true)] [DefaultBindingPropertyAttribute("Value")] public class ProgressBar : Control
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */
/** @attribute ComVisibleAttribute(true) */
/** @attribute DefaultBindingPropertyAttribute("Value") */
public class ProgressBar extends Control
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.
Nota:
|
|---|
|
Los cambios de ForeColor y BackColor 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. |
Nota de la plataforma Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows CE:
Esta clase se sella en .NET Compact Framework.
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.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.Control
System.Windows.Forms.ProgressBar
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile para Smartphone, Windows Mobile para Pocket PC
.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Nota: