Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
Het ToolStripProgressBar besturingselement vervangt en voegt functionaliteit toe aan het ProgressBar besturingselement; de ProgressBar controle wordt echter behouden voor zowel achterwaartse compatibiliteit als toekomstig gebruik, indien u kiest.
Het .NET Framework biedt u verschillende manieren om een bepaalde waarde in het besturingselement ProgressBar weer te geven. Welke benadering u kiest, is afhankelijk van de taak die u bij de hand hebt of het probleem dat u wilt oplossen. In de volgende tabel ziet u de benaderingen die u kunt kiezen.
| Methode | Beschrijving |
|---|---|
| Stel de waarde van het besturingselement ProgressBar rechtstreeks in. | Deze methode is handig voor taken waarbij u het totaal weet van het item dat wordt gemeten, zoals het lezen van records uit een gegevensbron. Als u de waarde slechts eenmaal of twee keer hoeft in te stellen, is dit een eenvoudige manier om dit te doen. Gebruik dit proces ten slotte als u de waarde wilt verlagen die wordt weergegeven door de voortgangsbalk. |
| Verhoog het ProgressBar-display met een vaste waarde. | Deze methode is handig wanneer u een eenvoudig aantal weergeeft tussen het minimum en maximum, zoals verstreken tijd of het aantal bestanden dat is verwerkt uit een bekend totaal. |
| Verhoog de ProgressBar-display met een variƫrende waarde. | Deze methode is handig wanneer u de weergegeven waarde een aantal keren in verschillende bedragen moet wijzigen. Een voorbeeld hiervan is het weergeven van de hoeveelheid schijfruimte die wordt verbruikt tijdens het schrijven van een reeks bestanden naar de schijf. |
De meest directe manier om de waarde in te stellen die wordt weergegeven door een voortgangsbalk, is door de eigenschap Value in te stellen. Dit kan worden gedaan tijdens het ontwerp of tijdens runtime.
De voortgangsbalkwaarde rechtstreeks instellen
Stel de waarden ProgressBar en Minimum van de besturing Maximum in.
Stel in code de eigenschap Value van het besturingselement in op een geheel getal tussen de minimum- en maximumwaarden die u hebt ingesteld.
Opmerking
Als u de eigenschap Value instelt buiten de grenzen die zijn ingesteld door de Minimum en Maximum eigenschappen, genereert het besturingselement een ArgumentException uitzondering.
In het volgende codevoorbeeld ziet u hoe u de ProgressBar waarde rechtstreeks instelt. De code leest records uit een gegevensbron en werkt de voortgangsbalk en het label bij telkens wanneer een gegevensrecord wordt gelezen. Voor dit voorbeeld is vereist dat uw formulier een Label besturingselement, een ProgressBar besturingselement en een gegevenstabel met een rij met de naam
CustomerRowmetFirstNameenLastNamevelden bevat.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 Subpublic 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(); }Als u de voortgang weergeeft die met een vast interval verloopt, kunt u de waarde instellen en vervolgens een methode aanroepen waarmee de waarde van het ProgressBar besturingselement met dat interval wordt verhoogd. Dit is handig voor timers en andere scenario's waarbij u de voortgang niet meet als percentage van het geheel.
De voortgangsbalk verhogen met een vaste waarde
Stel de waarden ProgressBar en Minimum van de besturing Maximum in.
Stel de eigenschap Step van het besturingselement in op een geheel getal dat het bedrag vertegenwoordigt om de weergegeven waarde van de voortgangsbalk te verhogen.
Roep de methode PerformStep aan om de waarde te wijzigen die wordt weergegeven door het bedrag dat is ingesteld in de eigenschap Step.
In het volgende codevoorbeeld ziet u hoe een voortgangsbalk het aantal bestanden in een kopieerbewerking kan bijhouden.
In het volgende voorbeeld, terwijl elk bestand in het geheugen wordt gelezen, worden de voortgangsbalk en het label bijgewerkt om het totale aantal gelezen bestanden weer te geven. In dit voorbeeld moet uw formulier een besturingselement Label en een besturingselement ProgressBar hebben.
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 Subpublic 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(); } }Ten slotte kunt u de waarde verhogen die wordt weergegeven door een voortgangsbalk, zodat elke toename een uniek bedrag is. Dit is handig wanneer u een reeks unieke bewerkingen bijhoudt, zoals het schrijven van bestanden van verschillende grootten naar een harde schijf of het meten van de voortgang als percentage van het geheel.
De voortgangsbalk verhogen met een dynamische waarde
Stel de waarden ProgressBar en Minimum van de besturing Maximum in.
Roep de Increment methode aan om de waarde te wijzigen die wordt weergegeven door een geheel getal dat u opgeeft.
In het volgende codevoorbeeld ziet u hoe een voortgangsbalk kan berekenen hoeveel schijfruimte is gebruikt tijdens een kopieerbewerking.
In het volgende voorbeeld, zoals elk bestand naar de harde schijf wordt geschreven, worden de voortgangsbalk en het label bijgewerkt om de hoeveelheid beschikbare schijfruimte weer te geven. In dit voorbeeld moet uw formulier een besturingselement Label en een besturingselement ProgressBar hebben.
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 Subpublic 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(); } }
Zie ook
.NET Desktop feedback