Hallo,
ich möchte gerne Werte in einem Balkendiagramm darstellen lassen.
Gibt es da schon was vorhandenes in VS2008?
Konnte leider nichts brauchbares finden.
lg,
Prexx
Druckbare Version
Hallo,
ich möchte gerne Werte in einem Balkendiagramm darstellen lassen.
Gibt es da schon was vorhandenes in VS2008?
Konnte leider nichts brauchbares finden.
lg,
Prexx
Hier mal ein einfaches Beispiel als UserControl erstellt (rechts Klick auf dem Projekt und Add... UserControl und als Namen z.B. ChartControl).
Ein ChartControl chart wie ein anderes Control im Design Mode auf die Form setzen und dann noch ein paar Werte zuweisen:Code:public partial class ChartControl : UserControl
{
private float[] _data;
public float[] Data { get { return _data; } set { _data = value; } }
public ChartControl()
{
InitializeComponent();
}
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
if (_data == null) return;
int rectWidth = Width / _data.Length;
int curX = 0;
using (Pen pen = new Pen(Color.Black))
{
foreach (float data in _data)
{
e.Graphics.DrawRectangle(pen, curX, Height, rectWidth, -(int)(data));
curX += rectWidth;
}
}
}
}
und man sollte vier Rechtecke sehen.Code:chart.Data = new float[] { 10, 30, 40, 20 };
Offen: verschiedene Diagrammarten, Farben, Skalen, etc.
EDIT: Ok, jetzt hab ich verstanden was du meintest.
Aber wie ich es auf die Form bekomme hab ich noch nicht raus. Wie kann ich es denn auf die Form ziehen?
Das ChartControl ist ein eigenes (also von Dir selber erstelltes) UserControl. Erstelle ein neues WM Projekt und dann folge den Schritten aus post #2.
Nachdem das neue Control erstellt wurde, öffnest Du die Form1 im Design Mode und fügst ein ChartControl in die Form. (drag&drop aus der ToolBox)
Wie heißt das denn in der Toolbox? Finde da nichts... :/
Also in der Projektmappe ist jetzt mein Projekt, und darin ein "ChartControl.cs" (und natürlich Form1 etc).
Wenn ich jetzt im Designmode der Form1 in der Toolbox schaue, finde ich nichts was annähernd das ChartControl sein könnte.
View - Toolbox und dann sollte es einen Bereich mit dem Namen des Projekts haben, wo das ChartControl ist.
(vielleicht auch noch Kompilieren)
Ist ChartControl wie oben eine Ableitung von UserControl?
Ja, Chartcontrol ist von UserControl.
Im Anhang mal 2 Bilder.
Das erste zeigt die Projektmappe, das andere die Toolbox.
Kompilation erfolgreich?
Und wenn Du in der Toolbox nach unten scrollst, gibt's keinen Bereich namens SmartDeviceProject1?
Falls nicht, dann schau mal nach, ob in den VS Tools in 'Windows Forms Designer' unter Toolbox 'AutoToolboxPopulate' auf 'True' gesetzt ist.
Sonst kannst Du auch rechts Klick in der Toolbox, 'Choose Items...' und dann dein exe auswählen.
chartControl1 ;)
(typischerweise erhalten Controls eine aufsteigende Zahl am Schluss, es ist aber empfehlenswert den Controls zweckmässige Namen zu geben, um sie im Code auseinander halten zu können)
Ah, doch so einfach. Dachte an eine Instanz oder sowas in der Richtung.
Na klasse, danke vielmals. :D
Hat mir sehr geholfen!
lg,
Prexx