Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Darstellung einer "Heatmap" oder "Effektivitätsanzeige"
Grimmbizkit
myCSharp.de - Member



Dabei seit:
Beiträge: 310
Herkunft: Niederrhein

Themenstarter:

Darstellung einer "Heatmap" oder "Effektivitätsanzeige"

beantworten | zitieren | melden

Hallo,

ich hoffe meine Frage ist hier richtig.
Ich habe zu einem Motor alle 5 Minuten einen Mittelwert.
Dieses möchte ich nun Grafisch (mittels Farben) darstellen, ob die Auslastung gut ist oder nicht.

Meine Frage wäre wie man sowas am besten realisieren könnte (evtl hat jemand dazu schon Erfahrungen gesammelt) PictureBox, DataGridView oder noch anders. Oder gibt es sowas schon als fertigen Plugin.

Ich habe für den Zeitraum 06:00-22:00 und 31 Tagen im Monat dann sehr viele Elemente nötig, was die GUI nicht schneller werden lässt.

In Anhang ein Screenshot, wie es derzeit mittels Excel gelöst wird.

Hoffe jemand kann mir da einen Tipp geben.

Gruß Simon
Attachments
private Nachricht | Beiträge des Benutzers
chilic
myCSharp.de - Experte



Dabei seit:
Beiträge: 2126

beantworten | zitieren | melden

Auch wenn bestimmt jemand zu etwas fertigem rät, am flexibelsten bist du wenn du dir diese Ansicht selbst zeichnest.
Das heißt *ein* einziges Bild, in das alles so gezeichnet wird wie es gerade aussehen soll. *Nicht* zig oder gar hunderte verschiedene GUI Elemente aufs Formular packen.
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4026

beantworten | zitieren | melden

Ich würde dir auch zum Selberzeichnen raten. Erzeuge eine neue Klasse und leite diese vom Panel ab und überschreibe die OnPaint-Methode, s.a. [Tutorial] Zeichnen in Windows-Forms-Programmen (Paint/OnPaint, PictureBox).
Mit der Graphics-Klasse (Zugriff mittels e.Graphics) hast du alle Zeichenmöglichkeiten.

Evtl. kannst du auch unveränderliche Teile (Hintergrund, Raster o.ä) vorher in ein Bitmap (Image) zeichnen (das sog. Caching) und dann dafür nur e.graphics.DrawImage(bitmap, ...) aufrufen.
private Nachricht | Beiträge des Benutzers
Grimmbizkit
myCSharp.de - Member



Dabei seit:
Beiträge: 310
Herkunft: Niederrhein

Themenstarter:

beantworten | zitieren | melden

Danke für die Antworten.

Leider ist das Thema für mich komplett neu mit dem "Zeichnen".

Ich würde mir quasi (mit Paint oder so) 5 farbige Felder vorbereiten.
Und dann in einer PictureBox diese entsprechend einfügen.
X0Y0 = Grün
X1Y0 = Grün
X2Y0 = Rot

Habe ich das schon soweit richtig verstanden?
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5967
Herkunft: Leipzig

beantworten | zitieren | melden

Lies dir doch erstmal den von Th69 verlinkten Artikel durch, dann sollte klar sein, wie das mit dem Zeichnen unter WinForms funktioniert.

Letztendlich mußt du ja nur Linien, Text und farbige Rechtecke zeichnen. Der einzige Aufwand besteht darin, die Positionen der Elemente im Bild zu berechnen, das das sollte meist mit einer einfachen Dreisatz-Berechnung lösbar sein.
Weeks of programming can save you hours of planning
private Nachricht | Beiträge des Benutzers
harlekyn
myCSharp.de - Member



Dabei seit:
Beiträge: 1
Herkunft: Bonn

beantworten | zitieren | melden

Mein Vorschlag wäre Live Charts
Fand das Nuget Paket sehr gut und die Beispiele verständlich.
private Nachricht | Beiträge des Benutzers