Ich versuche, dynamisch ein Diagramm für jedes Laufwerk in dem Computer innerhalb eines Formulars zu erstellen.Dynamisch Erstellen von Diagrammen
Jedes Diagramm sollte ein Kreisdiagramm sein, das die Menge an freiem Speicherplatz (grün markiert) und den belegten Speicherplatz (rot) in GB enthält.
Aber wenn ich den folgenden Code ausführen, ist das einzige, was ich sehe, leere Rechtecke mit den Überschriften "C: \", "D: \" und so weiter. Hier
ist der Code:
public static void DrawCharts()
{
Chart[] charts = new Chart[DriveInfo.GetDrives().Length];
DriveInfo[] drives = DriveInfo.GetDrives();
for (int i = 0; i < drives.Length; i++)
{
charts[i] = new Chart();
charts[i].Palette = ChartColorPalette.BrightPastel;
charts[i].Titles.Add(drives[i].Name);
charts[i].Series.Add("Storage");
charts[i].Series[0].ChartType = SeriesChartType.Pie;
charts[i].Location = new System.Drawing.Point(20 + i * 231, 30);
charts[i].Size = new System.Drawing.Size(230, 300);
DataPoint d = new DataPoint();
d.XValue = 1;
double[] p = { (double)drives[i].TotalFreeSpace/1000000000 };
d.YValues = p;
d.Color = System.Drawing.Color.YellowGreen;
d.Label = "Free Space";
charts[i].Series[0].Points.Add(d);
d.Label = "Used Space";
d.XValue = 2;
double[] a = { (double)((drives[i].TotalSize - drives[i].TotalFreeSpace)/1000000000) };
d.YValues = a;
d.Color = System.Drawing.Color.Red;
charts[i].Series[0].Points.Add(d);
Form1.tabs.TabPages[1].Controls.Add(charts[i]);
charts[i].Invalidate();
}
}
Dank.
Dank angezeigt werden! Es funktioniert. –
Ja, zumindest, wenn Sie etwas wie 'd = new DataPoint(); 'nach dem Hinzufügen des 1. DataPoint hinzufügen. – TaW
Ja, ich habe es herausgefunden, nachdem ich den Code einmal ausgeführt habe. Vielen Dank. –