Representa un control de barra de progreso de Windows.
Espacio de nombres: System.Windows.Forms
Ensamblado: System.Windows.Forms (en system.windows.forms.dll)
Visual Basic (Declaración)
<ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)> _
<ComVisibleAttribute(True)> _
Public Class ProgressBar
Inherits Control
Dim instance As ProgressBar
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)]
[ComVisibleAttribute(true)]
public class ProgressBar : Control
[ClassInterfaceAttribute(ClassInterfaceType::AutoDispatch)]
[ComVisibleAttribute(true)]
public ref class ProgressBar : public Control
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */
/** @attribute ComVisibleAttribute(true) */
public class ProgressBar extends Control
ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)
ComVisibleAttribute(true)
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 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 Sub CopyWithProgress(ByVal ParamArray filenames As String())
' 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.
Dim x As Integer
for x = 1 To filenames.Length - 1
' Copy the file and increment the ProgressBar if successful.
If CopyFile(filenames(x - 1)) = True Then
' Perform the increment on the ProgressBar.
pBar1.PerformStep()
End If
Next x
End Sub
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( array<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
Seguridad para subprocesos
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