Freigeben über


ProgressBar-Klasse

Stellt ein Statusanzeige-Steuerelement von Windows dar.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

Syntax

'Declaration
<ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)> _
<ComVisibleAttribute(True)> _
Public Class ProgressBar
    Inherits Control
'Usage
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

Hinweise

Ein ProgressBar-Steuerelement gibt den Fortschritt eines längeren Vorgangs in einem der folgenden drei Stile visuell an:

  • Segmentblöcke, die schrittweise von links nach rechts erweitert werden.

  • Eine durchgehende Leiste, die von links nach rechts ausgefüllt wird.

  • Ein Block, der sich laufschriftähnlich über eine ProgressBar bewegt.

Die Style-Eigenschaft bestimmt den Stil der angezeigten ProgressBar. Beachten Sie, dass das ProgressBar-Steuerelement nur horizontal ausgerichtet werden kann. Ein Beispiel für das Erstellen einer vertikal ausgerichteten ProgressBar finden Sie unter der ProgressBarRenderer-Klasse. Das ProgressBar-Steuerelement wird normalerweise verwendet, wenn eine Anwendung Aufgaben wie das Kopieren von Dateien oder Drucken von Dokumenten ausführt. Ohne einen visuellen Hinweis könnte der Benutzer denken, die Anwendung reagiere nicht. Indem Sie die ProgressBar in einer Anwendung verwenden, machen Sie den Benutzer darauf aufmerksam, dass die Anwendung eine langwierige Aufgabe ausführt, aber weiterhin reagiert.

Die Maximum-Eigenschaft und die Minimum-Eigenschaft definieren den Bereich von Werten, die den Fortschritt einer Aufgabe darstellen. Die Minimum-Eigenschaft wird normalerweise auf den Wert 0 (null) festgelegt, und die Maximum-Eigenschaft wird i. d. R. auf einen Wert festgelegt, der den Abschluss der Aufgabe anzeigt. Um z. B. den Fortschritt beim Kopieren mehrerer Dateien anzuzeigen, kann die Maximum-Eigenschaft auf die Gesamtzahl der zu kopierenden Dateien festgelegt werden.

Die Value-Eigenschaft zeigt an, wie weit die Ausführung der Anwendung bereits fortgeschritten ist. Der von der ProgressBar angezeigte Wert ist nur ein Näherungswert des aktuellen Werts der Value-Eigenschaft. Die Value-Eigenschaft bestimmt entsprechend der Größe von ProgressBar, wann der nächste Block angezeigt oder die Leiste vergrößert wird.

Neben dem direkten Ändern der Value-Eigenschaft gibt es eine Reihe weiterer Möglichkeiten, den von ProgressBar angezeigten Wert zu ändern. Sie können mithilfe der Step-Eigenschaft einen bestimmten Wert angeben, um den die Value-Eigenschaft erhöht werden soll, und dann die PerformStep-Methode aufrufen, um den Wert zu erhöhen. Zum Ändern des Inkrementwerts können Sie die Increment-Methode verwenden und einen Wert angeben, um den die Value-Eigenschaft erhöht werden soll.

Hinweis

Änderungen der ForeColor für die ProgressBar werden nicht berücksichtigt, wenn für Windows XP Home Edition, Windows XP Professional, Windows Server 2003 und höher visuelle Stile aktiviert sind.

Beispiel

Im folgenden Codebeispiel wird anhand des ProgressBar-Steuerelements das Anzeigen des Fortschritts beim Kopieren von Dateien veranschaulicht. Im Beispiel werden die Minimum-Eigenschaft und die Maximum-Eigenschaft verwendet, um einen Bereich für ProgressBar anzugeben, der der Anzahl der zu kopierenden Dateien entspricht. Im Code wird auch die Step-Eigenschaft mit der PerformStep-Methode verwendet, um den Wert von ProgressBar zu erhöhen, wenn eine Datei kopiert wurde. Für dieses Beispiel ist es erforderlich, dass Sie ein ProgressBar-Steuerelement mit dem Namen pBar1 in einem Form sowie eine Methode mit dem Namen CopyFile erstellt haben, die den Dateikopiervorgang durchführt. Diese Methode gibt einen booleschen Wert zurück, der die erfolgreiche Durchführung des Vorgangs angibt. Für diesen Code ist es außerdem erforderlich, dass ein Zeichenfolgenarray mit den zu kopierenden Dateien erstellt und an die im Beispiel definierte CopyWithProgress-Methode übergeben wird und die Methode von einer anderen Methode oder einem Ereignis im Form aufgerufen wird.

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

Vererbungshierarchie

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

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

ProgressBar-Member
System.Windows.Forms-Namespace