7.9 Steuerelement Chart
In einem Diagramm (engl.: Chart) kann eine große Menge von Daten übersichtlich und schnell erfassbar dargestellt werden. Sie kennen Diagramme sicherlich aus MS Excel. Das Steuerelement Chart bietet Ihnen innerhalb von Visual Basic eine vergleichbare Möglichkeit.
Im Projekt DiagrammChart sehen Sie ein Liniendiagramm, siehe Abbildung 7.36. Das Steuerelement wurde aus der Toolbox-Gruppe Daten eingefügt. Zur Verdeutlichung wurden fast alle Einstellungen in der Form_Load-Prozedur vorgenommen. Im Eigenschaftenfenster wurden nur die Breite mit dem Wert 450 und der Name mit dChart eingestellt.
Abbildung 7.36 Projekt »DiagrammChart«
Zunächst der Code:
Imports System.Windows.Forms.DataVisualization.Charting
Public Class Form1
Private Sub Form1_Load(...) Handles MyBase.Load
dChart.Series.Clear()
dChart.Series.Add(New Series("Umsatz Berlin"))
dChart.Series(0).Points.AddXY(2007, 10)
dChart.Series(0).Points.AddXY(2009, 30)
dChart.Series(0).Points.AddXY(2011, 70)
dChart.Series(0).Color = Color.Black
dChart.Series(0).BorderWidth = 3
dChart.Series(0).ChartType = SeriesChartType.Line
dChart.Series.Add(New Series("Umsatz Hamburg"))
dChart.Series(1).Points.AddXY(2007, 25)
dChart.Series(1).Points.AddXY(2009, 20)
dChart.Series(1).Points.AddXY(2011, 100)
dChart.Series(1).Color = Color.Gray
dChart.Series(1).BorderWidth = 3
dChart.Series(1).ChartType = SeriesChartType.Line
dChart.Legends(0).Position =
New ElementPosition(25, 10, 40, 20)
dChart.Legends(0).BackColor = Color.LightGray
dChart.Legends(0).BorderWidth = 1
dChart.Legends(0).BorderColor = Color.Black
dChart.ChartAreas(0).AxisX.Minimum = 2007
dChart.ChartAreas(0).AxisX.Maximum = 2011
dChart.ChartAreas(0).AxisX.Title = "Jahr"
dChart.ChartAreas(0).AxisX.TitleAlignment =
StringAlignment.Near
dChart.ChartAreas(0).AxisX.LabelStyle.Font =
New Font("Arial", 8)
dChart.ChartAreas(0).AxisY.Maximum = 120
dChart.ChartAreas(0).AxisY.Title = "1.000 Euro"
dChart.ChartAreas(0).AxisY.TitleAlignment =
StringAlignment.Far
dChart.ChartAreas(0).AxisY.LabelStyle.Font =
New Font("Arial", 8)
dChart.BackColor = Color.LightGray
dChart.ChartAreas(0).BackColor =
Color.LightBlue
End Sub
...
End Class
Listing 7.23 Projekt DiagrammChart, Teil 1
Zur Erläuterung:
- Zunächst muss mithilfe der Anweisung Imports der Namensraum System.Windows.Forms.DataVisualization.Charting zur Verfügung gestellt werden, da er für verschiedene Objekte innerhalb eines Chart-Objekts benötigt wird.
- Wie in MS Excel basiert ein Diagramm in einem Chart-Steuerelement auf einer oder mehreren Reihen von Werten, den Datenreihen. Diese Datenreihen stehen in der Auflistung Series des Chart-Objekts. Nach dem Einfügen aus der Toolbox beinhaltet diese Auflistung bereits eine Datenreihe mit Beispielwerten. Die Methode Clear() löscht alle vorhandenen Datenreihen.
- Eigene Datenreihen werden mithilfe der Methode Add() hinzugefügt. Dabei handelt es sich jeweils um ein neues Objekt vom Typ Series. Einer der möglichen Konstruktoren erwartet als Parameter den Namen der jeweiligen Datenreihe, wie er zum Beispiel auch in der Legende sichtbar ist.
- Jede Datenreihe ist innerhalb der Auflistung Series über ihre laufende Nummer erreichbar. Die Auflistung Points einer einzelnen Datenreihe beinhaltet Wertepaare (Datenpunkte) für die Darstellung in verschiedenen Diagrammtypen, zum Beispiel in einem Liniendiagramm. Mithilfe der Methode AddXY() können diese Wertepaare hinzugefügt werden.
- Die Eigenschaften Color und BorderWidth einer einzelnen Datenreihe stehen für Strichfarbe und Strichdicke. Mithilfe der Eigenschaft ChartType kann die Form der Darstellung für diese Datenreihe aus der umfangreichen Enumeration SeriesChartType gewählt werden.
- In der Auflistung Legends des Chart-Objekts stehen alle Legenden zu einem Diagramm. Häufig wird nur eine Legende benötigt. Sie steht normalerweise oben rechts neben der Zeichnung.
- Hier wird die Eigenschaft Position einer einzelnen Legende mit einem neuen Objekt des Typs ElementPosition festgelegt. Der Konstruktor erwartet vier Werte: die x/y-Koordinaten der oberen linken Ecke sowie Breite und Höhe.
- Die Eigenschaften BackColor, BorderWidth und BorderColor einer einzelnen Legende dienen zur Einstellung der Hintergrundfarbe, der Rahmenliniendicke und der Rahmenlinienfarbe.
- In der Auflistung ChartAreas des Chart-Objekts stehen alle Zeichnungsbereiche zu einem Diagramm. Häufig wird nur ein Zeichnungsbereich benötigt.
- Die Eigenschaften AxisX und AxisY eines einzelnen Zeichnungsbereichs sind vom Typ Axis und beinhalten die Eigenschaften der x- und y-Achse der Zeichnung. Die Eigenschaften Minimum, Maximum und Title bestimmen die Randwerte der jeweiligen Achse sowie den Titel, der an der Achse angezeigt wird.
- Die Eigenschaft TitleAlignment eines Axis-Objekts steht für die Anordnung des Titels. Die Werte dazu stammen aus der Enumeration StringAlignment. Der Wert Near bedeutet für eine x-Achse, die von links nach rechts ausgerichtet ist: links. Für eine y-Achse, die von unten nach oben ausgerichtet ist, bedeutet er: unten. Der Wert Far steht dann für rechts beziehungsweise oben. Außerdem gibt es noch den Standardwert Center.
- Die Eigenschaft LabelStyle eines Axis-Objekts bestimmt das Aussehen der Achsenbeschriftung. Hier wurde die Eigenschaft Font zur Einstellung der Schrifteigenschaften mithilfe eines neuen Font-Objekts verändert. Die Eigenschaft Angle des LabelStyle-Objekts würde die einzelnen Zahlen an der Achse jeweils um einen bestimmten Winkel drehen. Dabei sind Werte zwischen –90 und +90 Grad erlaubt.
- Zu guter Letzt werden noch die unterschiedlichen Hintergrundfarben für das Diagramm und die Zeichnungsfläche gewählt. Die jeweilige Eigenschaft BackColor hat den Standardwert Weiß.
Es folgen noch die beiden Prozeduren zum Drucken und zum Speichern eines Diagramms:
Private Sub cmdDrucken_Click(...) Handles ...
dChart.Printing.PrintPreview()
End Sub
Private Sub cmdSpeichern_Click(...) Handles ...
Dim VollerName As String = "C:\Temp\DiagrammChart.tif"
dChart.SaveImage(VollerName, ChartImageFormat.tif)
MessageBox.Show("Es wurde die Bilddatei " &
VollerName & " erzeugt")
End Sub
Listing 7.24 Projekt »DiagrammChart«, Teil 2
Zur Erläuterung:
- Die Eigenschaft Printing eines Chart-Objekts ist vom Typ PrintingManager. Ein Objekt dieses Typs wird zum Drucken eines Diagramms benötigt und verfügt unter anderem über die Methode Print() zum direkten Ausdruck und PrintPreview() zum Anzeigen einer Druckvorschau. Aus der Druckvorschau kann dann ebenfalls gedruckt werden.
- Die Methode SaveImage() eines Chart-Objekts dient zum Speichern eines Diagramms als Bilddatei. Sie benötigt zwei Parameter: den Namen der Datei und das Bildformat. Dieses kann aus der Enumeration ChartImageFormat ausgewählt werden.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.