Hallo zusammen,
ich möchte gerne den Value vom ProgressBar nach einem bestimmten Intervall setzen. Also je nachdem, wie der freie Festplattenspeicher aussieht.
Der ProgressBar soll nur so viel anzeigen (noch verfügbare Kapazität), wie es auf der Festplatte belegt ist.
ObjectQuery query = new ObjectQuery("SELECT FreeSpace FROM Win32_LogicalDisk where DeviceID = 'C:'");
foreach (ManagementObject m in queryCollection)
{
freeSpace = Math.Round((Convert.ToDecimal(m["FreeSpace"]) / 1073741824), 2);
}
FreeSpace ist: 159 GB
Die Gesamtgröße der Festplatte ist: 449 GB
Wie kann ich nun das Ganze als Prozentsatz berechnen und den Value vom ProgressBar entsprechend setzen?
progressBar1.Value = ?
Der Value soll NUR den belegten Speicher (als Prozent) von 449 GB anzeigen.
Vielen Dank im Voraus.
Hi csharp-user,
wo liegt das Problem? Bei der Prozentrechnung oder bei der Verwendung der Progressbar?
Christian
Weeks of programming can save you hours of planning
Hallo csharp-user,
auch im Grundlagenforum kann Prozentrechnung vorausgesetzt werden.
// freier Speicher
progressBar1.Value = (int)(freeSpace / 449d * 100d);
// belegter Speicher
progressBar1.Value = (int)((1.0 - freeSpace / 449d) * 100d);
Das Convert.ToDecimal
kannst du dir auch sparen das es nicht nötig ist.
Das d
bei 449 gibt an, dass es sich um ein double
handelt.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
// belegter Speicher
progressBar1.Value = (int)((1.0 - freeSpace / 449d) * 100d);
freeSpace ist 159GB.
(int)((1.0 - 159 / 449d) * 100d)
liefert mir 64. Wie soll ich diese Zahl interpretieren? Ist 64 der Prozentsatz?
Wenn ich die Festplattengröße unter Windows anschaue, dann steht dort:
Gesamtgröße (Speicherkapazität) der Festplatte: 449 GB
Freier Speicher: 159 GB
Belegter Speicher: 290 GB
Also, 64% von 449 GB ist zurzeit belegt oder?
Was ist mit:
progressBar1.Minimum =
und
progressBar1.Maximum =
Muss ich diese Werte setzen?
Ich möchte, dass der progressBar zeigt: so und soviel Prozent% von 449 GB ist zurzeit belegt. Und bei 100% ist erreicht der progressBar das Maximum.
Danke.
Ist jetzt nicht böse gemeint aber vielleicht solltest du dich wirklich erst einmal mit den Grundlagen der Prozentrechnung beschäftigen bevor du dich an ein solches Problem wagst.
Du hast von gfoidl eigentlich eine sehr gute Lösung für das Problem erhalten, welche dir den Prozentsatz des belegten Speichers ausgibt.
Nach kurzer Überlegung solltest du auch drauf kommen was bei Minimum und Maximum eingesetzt werden sollte. Wie viel Prozent deiner Festplatte wären den belegt wenn diese leer oder voll ist?
Damit ist alles gesagt und hier zu. Bitte beachte unseren [Hinweis] Wie poste ich richtig? , besonders Punkt 1. Was die Minimum- und Maximum-Eigenschaften betrifft, hättest du bei einem Blick in die Doku schneller eine Antwort bekommen.
Christian
Weeks of programming can save you hours of planning