Progressbar Farbe ändern?
- VB.NET
Sie verwenden einen veralteten Browser (%browser%) mit Sicherheitsschwachstellen und können nicht alle Funktionen dieser Webseite nutzen.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Es gibt 30 Antworten in diesem Thema. Der letzte Beitrag () ist von SystemUnknow.
-
-
-
-
-
Hi!
Das ändern der Farbe ist seit den Windows XP Designs nicht mehr möglich, weil es sich nicht um "handgemalte" Grafiken, sondern Bitmaps handelt.
Es gibt z.B. die kostenlosen CoolXP-Steuerelemente mit einer WinXP-Progressbar, die Farben ändern kann.
Mit 1 bis 3 Pictureboxen, 3 Bildern und ein bisschen Code kannst du dir aber auch deine ganz persönliche Progressbar erstellen -
Hi,
vielen Dank für die nützlichen Antworten.
Ich werde das auf später verschieben müssen.
Für meine Zwecke ist das momentan zu aufwändig. Wenn es 2 oder 3 Klicks gewesen wären, hätte ich da sicherlich drauf zugegriffen.
Evtl im nächsten Projekt.
Macht weiter so. Ein tolles Forum.
Marcoso far...
Wumpel
...manchmal ist es einfacher als man denkt... -
-
ist es möglich mit wenigen Kommandos die Frabe einer Progressbar von grün in zB rot zu ändern?
Wenn man die Datensicherung abbricht füllt sich die Progressbar ganz und wechselt von grün zu rot.
Wäre schön, wenn jemand wüsste, wie das gemacht wurde -
-
Hey,
wie oben schon genannt, funktioniert das einfärben einer Progressbar unter Windows XP nicht, da diese als Bitmap eingelesen werden. Unter Windows Vista funktioniert das einfärben aber wieder.
Dieser Code sollte unter Windows Vista die Progressbar einfärben:
VB.NET-Quellcode
- Public Class Form1 Declare Auto Function SendMessage Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal msg As Integer, _
- ByVal wParam As Integer, ByVal lParam As Integer) As Integer
- Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
- 'nval als Integer von Textbox.Text für Value.
- Dim nval As Integer = TextBox1.Text 'nval als Value von der Progressbar setzen.
- ProgressBar1.Value = nval 'Der code für die änderung.
- If nval < 50 Then
- SendMessage(ProgressBar1.Handle, &H400 + 16, &H3, 0) 'Pause; Yellow
- ElseIf nval > 50 Then
- SendMessage(ProgressBar1.Handle, &H400 + 16, &H1, 0) 'Normal; Green
- End If
- End Sub
- End Class
In der Textbox1 gibt man einen Wert zwischen 0 und 100 ein, zwischen 0-50 wird die Progressbar1 gelb, zwischen 50-100 grün.
Gruß Manuel -
-
-
-
@Valerian Flamm
der code ist für vista!
Achja schau mal hier vorbei. Den code musst du nur ein wenig umstellen, das is ne trackbar kannst du aber als progressbar umstellen, da brauchst du nur 1 panel
wenn du hilfe brauchst sag bscheid
LG Fabian -
-
-
-
Denny schrieb:
rot:
SendMessage(ProgressBar1.Handle, &H400 + 16, &H2, 0)
Ich bin ma so frech und grabe ein altes Thema aus. Aber könnte mir jemand sagen wo ich die Farbwerte herbekomme wenn ich z.B Blau haben will?
Das die Farbe nur durch das &H2 geändert wird habe ich schon gecheckt aber ich würde gerne wissen was für Farben es gibt. -
-
Bei mir funktioniert es unter Windows 7:
Version: Windows 7 Ultimate
Framework-Version: 4.0
VB-Version:Visual Basic 2010 Express
Ich habe es mit einem Timer gemacht:
Hier der Code:
VB.NET-Quellcode
- Public Class Form1
- Declare Auto Function SendMessage Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal msg As Integer, _
- ByVal wParam As Integer, ByVal lParam As Integer) As Integer
- Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
- 'nval als Integer von Textbox.Text für Value.
- Dim nval As Integer = TextBox1.Text 'nval als Value von der Progressbar setzen.
- ProgressBar1.Value = nval 'Der code für die änderung.
- If nval < 50 Then
- SendMessage(ProgressBar1.Handle, &H400 + 16, &H3, 0) 'Pause; Yellow
- ElseIf nval > 51 Then
- SendMessage(ProgressBar1.Handle, &H400 + 16, &H2, 0) 'Fehler; Red
- End If
- End Sub
- Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
- TextBox1.Text += 1
- If TextBox1.Text = 100 Then
- TextBox1.Text = 1
- End If
- End Sub
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- Timer1.Start()
- End Sub
- End Class
°°°°°VB-Coder°°°°°Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VB-Coder“ ()
-
Ähnliche Themen
-
DragonElex - - Sonstige Problemstellungen
-
kiterider2006 - - Weitere Sprachen und sprachübergreifende Themen