ProgressBar

EngelchenB

Erfahrenes Mitglied
Ähm, warscheinlich bin Ich einfach nur blind. Aber wie Färbe ich eine ProgressBar unter VB.Net? unter VB6 ging das ja ganz einfach, ich hätt als Farben gern nen Verlauf von Grün nach Rot... :>
 
Standardmäßig geht das nicht. Da musst Du Dir ein eigenes Control schreiben, welches Du von der ProgressBar ableitest. Anschließend musst Du die OnPaint()-Methode (keine Ahnung wie die in VB.NET heisst) überschreiben, also die Methode in der die Darstellung ausprogrammiert ist.

Es gibt aber schon eine Menge abgeleiteter Controls für .NET. Also einfach mal ein bisschen googlen.

Ansonsten hätt ich hier einige Beispiele, wenn Du es gerne selber programmieren möchtest. Hat den Vorteil, dass Du das Ding gestalten kannst wie Du willst. :)

VB.NET ProgressBar (Diskussion)
3D ProgressBar (C#.NET)
 
Soweit ich weiss, muss man in .NET keine Controls ableiten. Alle haben eine Funktion, über die man mit GDI das Zeichnen übernehmen kann.

Vielleicht stimmts auch nicht ganz...

Die ProgressBar hat ein Mitglied, zum selber Zeichnen. Habs aber noch nie benutzt.
 
Okay, wenn Du es so machst, dann zeichnest Du aber nicht das Control, sondern Du zeichnest ÜBER das Control, d.h. das System zeichnet Dir das Control und Du zeichnest dann das Control nochmals darüber. Das wäre doppelter Zeichenaufwand und ein Performance-Verlust, kann evtl. sogar zu Flicker-Fehlern führen etc.

In der OOP leitet man in der Regel die Klasse ab, überschreibt die Zeichen-Methode und fertig ist das eigene Control.

Müssen tust Du das natürlich nicht, richtigen und falschen Code gibts sowieso nicht, sondern ich bezeichne sowas eher immer als sauber und unsauber. Soll heissen, man sollte es schon ableiten, wenns geht. Und gehen tuts. ;)
 
Zuletzt bearbeitet:
Hi!

@Saber:
Eine kleine Berichtigung zu Deinem ersten Post, ProgressBar kann man in VB.NET nicht ableiten, da es als "NotInheritable" gekennzeichnet ist. D.h. man muß ganz einfach selbst Hand anlegen und das Steuerelement komplett selbst programmieren.

Die OnPaint-Methode heißt auch unter VB.NET OnPaint. ;)

Man könnte aber eine PictureBox nehmen und auf diese zeichnen?! Wäre das nicht die einfachste Möglichkeit?

MfG
..::Six Dark::..
 
Stümmt ... die kann man unter .NET ned ableiten. *sorry* ;)

Hab gerade nachgeschaut, ich hatte sie mir auch komplett nachprogrammiert, wobei ich sagen muss, dass das nicht wirklich schwer ist. Am meisten Arbeiten ist wohl das Zeichnen, der Rest ist ein Kinderspiel. :)

Im Prinzip kann man jedes Steuerelement nehmen und darauf zeichnen. Aber die Funktionalität der ProgressBar muss ja trotzdem ausprogrammiert werden. Also wieso kein eigenes Control programmieren? Steigert die Wiederverwendbarkeit und senkt die Wartungsarbeiten. :)
 
Zurück