Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Bedeutung
Das ToolStripProgressBar-Steuerelement ersetzt und fügt dem ProgressBar-Steuerelement Funktionen hinzu; Das ProgressBar-Steuerelement wird jedoch sowohl für die Abwärtskompatibilität als auch für die zukünftige Verwendung beibehalten, wenn Sie dies auswählen.
Das .NET Framework bietet Ihnen verschiedene Möglichkeiten, einen bestimmten Wert innerhalb des ProgressBar Steuerelements anzuzeigen. Welcher Ansatz Sie auswählen, hängt von der jeweiligen Aufgabe oder dem Problem ab, das Sie lösen. In der folgenden Tabelle sind die Ansätze aufgeführt, die Sie auswählen können.
Vorgehensweise | BESCHREIBUNG |
---|---|
Legen Sie den Wert des ProgressBar Steuerelements direkt fest. | Dieser Ansatz ist nützlich für Vorgänge, bei denen Sie die Summe des elements kennen, das einbezogen wird, z. B. das Lesen von Datensätzen aus einer Datenquelle. Wenn Sie den Wert nur einmal oder zweimal festlegen müssen, ist dies eine einfache Möglichkeit, ihn zu erledigen. Verwenden Sie abschließend diesen Vorgang, wenn Sie den von der Statusleiste angezeigten Wert verringern müssen. |
Erhöhen Sie die ProgressBar Anzeige um einen festen Wert. | Dieser Ansatz ist nützlich, wenn Sie eine einfache Anzahl zwischen dem Minimum und dem Maximum anzeigen, z. B. verstrichene Zeit oder die Anzahl der Dateien, die aus einer bekannten Summe verarbeitet wurden. |
Erhöhen Sie die Anzeige um einen Wert, der ProgressBar unterschiedlich ist. | Dieser Ansatz ist nützlich, wenn Sie den angezeigten Wert mehrmals in unterschiedlichen Mengen ändern müssen. Ein Beispiel wäre, wie viel Festplattenspeicher verbraucht wird, während eine Reihe von Dateien auf den Datenträger geschrieben wird. |
Die direkteste Möglichkeit zum Festlegen des von einer Statusleiste angezeigten Werts besteht darin, die Value Eigenschaft festzulegen. Dies kann entweder zur Entwurfszeit oder zur Laufzeit erfolgen.
So legen Sie den ProgressBar-Wert direkt fest
Legen Sie die Werte und ProgressBar Werte des Minimum Steuerelements Maximum fest.
Legen Sie im Code die Eigenschaft des Steuerelements Value auf einen ganzzahligen Wert zwischen dem von Ihnen festgelegten Minimal- und Höchstwert fest.
Hinweis
Wenn Sie die Value Eigenschaft außerhalb der durch die Minimum Eigenschaften Maximum festgelegten Grenzen festlegen, löst das Steuerelement eine ArgumentException Ausnahme aus.
Im folgenden Codebeispiel wird veranschaulicht, wie der ProgressBar Wert direkt festgelegt wird. Der Code liest Datensätze aus einer Datenquelle und aktualisiert die Statusleiste und Beschriftung jedes Mal, wenn ein Datensatz gelesen wird. Dieses Beispiel erfordert, dass Ihr Formular über ein Label Steuerelement, ein ProgressBar Steuerelement und eine Datentabelle mit einer Zeile namens
CustomerRow
mitFirstName
undLastName
Feldern verfügt.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(); }
Wenn Sie den Fortschritt anzeigen, der nach einem festen Intervall fortgesetzt wird, können Sie den Wert festlegen und dann eine Methode aufrufen, die den ProgressBar Wert des Steuerelements um dieses Intervall erhöht. Dies ist nützlich für Zeitgeber und andere Szenarien, in denen Sie den Fortschritt nicht als Prozentsatz des Gesamten messen.
So erhöhen Sie die Fortschrittsanzeige um einen festen Wert
Legen Sie die Werte und ProgressBar Werte des Minimum Steuerelements Maximum fest.
Legen Sie die Eigenschaft des Steuerelements Step auf eine ganze Zahl fest, die den Betrag darstellt, um den angezeigten Wert der Statusleiste zu erhöhen.
Rufen Sie die PerformStep Methode auf, um den wert zu ändern, der durch den in der Step Eigenschaft festgelegten Betrag angezeigt wird.
Im folgenden Codebeispiel wird veranschaulicht, wie eine Statusleiste eine Anzahl der Dateien in einem Kopiervorgang verwalten kann.
Im folgenden Beispiel werden die Statusanzeige und die Beschriftung aktualisiert, da jede Datei in den Arbeitsspeicher eingelesen wird, um die Gesamten gelesenen Dateien widerzuspiegeln. Dieses Beispiel erfordert, dass Ihr Formular über ein Label Steuerelement und ein ProgressBar Steuerelement verfügt.
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(); } }
Schließlich können Sie den von einem Fortschrittsbalken angezeigten Wert erhöhen, sodass jede Erhöhung ein einzigartiger Betrag ist. Dies ist nützlich, wenn Sie eine Reihe von eindeutigen Vorgängen nachverfolgen, z. B. Dateien unterschiedlicher Größen auf eine Festplatte schreiben oder den Fortschritt als Prozentsatz des gesamten Vorgangs messen.
Um die Fortschrittsanzeige um einen dynamischen Wert zu erhöhen
Legen Sie die Werte und ProgressBar Werte des Minimum Steuerelements Maximum fest.
Rufen Sie die Increment Methode auf, um den Wert zu ändern, der für eine von Ihnen angegebene ganze Zahl angezeigt wird.
Im folgenden Codebeispiel wird veranschaulicht, wie eine Statusleiste berechnen kann, wie viel Speicherplatz während eines Kopiervorgangs verwendet wurde.
Im folgenden Beispiel werden die Statusleiste und die Beschriftung aktualisiert, da jede Datei auf die Festplatte geschrieben wird, um den verfügbaren Festplattenspeicher wiederzugeben. Dieses Beispiel erfordert, dass Ihr Formular über ein Label Steuerelement und ein ProgressBar Steuerelement verfügt.
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(); } }
Siehe auch
.NET Desktop feedback