vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Controls   |   VB-Versionen: VB2005, VB2008, VB201005.04.12
Progressbar in den Ampelfarben einfärben

Hier wird gezeigt, wie mittels "SendMessage" die Progressbar in den Ampelfarben (ROT,GELB,GRÜN) eingefärbt werden kann.

Autor:   DierkBewertung:  Views:  10.140 
ohne HomepageSystem:  WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Das Einfärben einer ProgressBar in den Ampelfarben (rot, gelb und grün) kann, wie im Beispiel, dazu genutzt werden, um die Auslastung eines Laufwerks farbig darzustellen.

' API-Deklaration
Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" ( _
  ByVal hwnd As IntPtr, _
  ByVal uMsg As Integer, _
  ByVal wParam As Integer, _
  ByVal lParam As Integer) As Integer
 
' Enum der Farben für die Progressbar
Public Enum PBarColor
  Gruen = 1
  Rot = 2
  Gelb = 3
End Enum
 
''' <summary>
''' Setzt die Farbe der Progressbarsbar
''' </summary>
''' <param name="PBar">Die Progessbar, deren Farbe gesetzt werden soll</param>
''' <param name="Color">Farbe der gewählten Progressbar</param>
''' <returns>True or False</returns>
Function SetPBarColor(ByVal PBar As ProgressBar, ByVal Color As PBarColor) As Boolean
  Try
    SendMessage(PBar.Handle, 1040, CInt(Color), 0)
    Return True
  Catch ex As Exception
    Return False
  End Try
End Function

Beispielaufruf:

' So kann man z.b den Freien Speicherplatz eines Laufwerks in Prozent anzeigen
' und je nach Auslastung einfärben
 
' Dazu holen wir und´s erstmal die Infos zum Laufwerk
Dim d As New System.IO.DriveInfo("C:\")
 
' Da wir Prozentual anzeigen, ist das Max 100
ProgressBar1.Maximum = 100
 
' Den Freien Speicher in Prozent berechnen
Dim proz As Integer = d.TotalFreeSpace / d.TotalSize * 100
 
' Die Anzeige der Progressbar setzen
ProgressBar1.Value = ProgressBar1.Maximum - proz
 
' jetzt können wir beliebig nach Auslastung des Laufwerks die Farbe setzen
If proz > 0 And proz < 10 Then
  ' hier wäre jetzt alles zwischen 0 - 10% freier Speicher "ROT"
  SetPBarColor(ProgressBar1, PBarColor.Rot)
ElseIf proz > 10 And proz < 15 Then
  ' zwischen 10 und 15% wäre es "GELB"
  SetPBarColor(ProgressBar1, PBarColor.Gelb)
Else
  ' andernfalls grün
  SetPBarColor(ProgressBar1, PBarColor.Gruen)
End If



Anzeige

Kauftipp Unser Dauerbrenner!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.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


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.