Das Komplizierte beim Erstellen eines Kreisdiagramms ist normalerweise die Berechnung der einzelnen Kreissegmente. Unter VB.NET ist das jedoch überhaupt nicht schwierig, da man hier auf die "vorgefertige" FillPie-Methode zurückgreifen kann. Erstellen Sie ein neues Windows-Forms-Projekt und platzieren auf die Form ein PictureBox- und ein CommandButton-Control. Fügen Sie nachfolgenden Code in den Codeteil der Form ein. Beim Klick auf den Button wird dann ein Kreisdiagramm mit vorgegebenen Werten gezeichnet. Das Diagramm selbst wird hierbei im PictureBox-Control ausgegeben. Public Class Form1 Inherits System.Windows.Forms.Form Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click ' Werte Dim nValue() As Integer = {10, 20, 30, 15, 45, 12, 28} With PictureBox1 ' Kreis zeichnen (PictureBox wird als Ausgabe-Objekt übergeben) DrawPie(nValue, PictureBox1) End With End Sub ' Einfaches Kreisdiagramm Private Sub DrawPie(ByVal nValue() As Integer, ByVal oOutput As Object) ' Farben Dim nColor() As Color = {Color.Moccasin, _ Color.Navy, _ Color.Yellow, _ Color.Silver, _ Color.SandyBrown, _ Color.Red, _ Color.MistyRose, _ Color.MediumPurple, _ Color.LimeGreen, _ Color.Cyan, _ Color.Beige, _ Color.AliceBlue} ' Graphics-Objekt Dim g As Graphics = oOutput.CreateGraphics ' Außmaße Dim nWidth As Integer = oOutput.Width Dim nHeight As Integer = oOutput.Height ' Summe aller Werte ermitteln Dim nMax As Integer Dim i As Integer For i = 0 To UBound(nValue) nMax += nValue(i) Next Dim nPercent As Integer Dim nAngle As Integer Dim nStartAngle As Integer Dim brush As System.Drawing.SolidBrush Dim nColIndex As Integer = 0 ' Kreis zeichnen For i = 0 To UBound(nValue) brush = New System.Drawing.SolidBrush(nColor(nColIndex)) ' Größe des Kreissegment berechnen nPercent = CInt(nValue(i) / nMax * 100 + 0.5) nAngle = 360 * (nPercent / 100) ' Anfangswinkel If nStartAngle + nAngle > 360 Then nAngle = 360 - nStartAngle ' Segment zeichnen g.FillPie(brush, New Rectangle(0, 0, nWidth, nHeight), nStartAngle, nAngle) ' neuen Anfangspunkt berechnen nStartAngle += nAngle ' nächster Farbwert nColIndex += 1 If nColIndex > UBound(nColor) Then nColIndex = 0 Next i g.Dispose() End Sub End Class Dieser Tipp wurde bereits 22.494 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
Neu! sevCoolbar 3.0 Professionelle Toolbars im modernen Design! Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Tipp des Monats Mai 2024 Hermann Röttger Wochentage eines Datumsbereichs ermitteln Wochentage eines Datumsbereichs ermitteln, optional mit Feiertagsberechnung Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |