Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding > Coding Tutorials
You last visited: Today at 01:39

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[C#] Eigene ProgressBar (BG-Color veränderbar!)

Discussion on [C#] Eigene ProgressBar (BG-Color veränderbar!) within the Coding Tutorials forum part of the General Coding category.

Reply
 
Old   #1


 
elite*gold: 0
Join Date: Jul 2009
Posts: 3,357
Received Thanks: 705
[C#] Eigene ProgressBar (BG-Color veränderbar!)

Hallo,
ich möchte mal ein kleines Tutorials vorstellen, indem ich euch erläutere, wie ihr eine eigene ProgressBar erstellen könnt, dazu gehört dann auch die Hintergrundfarbe eurer Wahl - diese könnt ihr bei der Standard ProgressBar nicht verändern!

Im Voraus:
Ich arbeite mit Visual C# 2010 von Microsoft.

Schritt 1: Steuerelemente

Ihr braucht:
1x -> Button ("Button1")
1x -> Label ("Fortschritt:", Optional)
1x -> Panel (Breite auf 1 Pixel setzen, in den Eigenschaften; Hintergrundfarbe deiner Wahl)
1x -> Timer ("timer1")

Positionieren

Ich hab den Button in die mitte meiner Windows Forms Anwendung gesetzt.
Das Label habe ich links über dem Panel positioniert und dem Panel als BackColor ein dunkles blau zugewiesen!

Button-Code:

Jetzt geht ihr mit einem Doppelklick auf den Button in den Code des Buttons.
Mit einem Klick auf den Button soll der Timer gestartet werden!

Der Sourcecode dafür:
Code:
timer1.Start();
Timer Code:

Der Timer soll die Breite des Panels pro Sekunde um 1 erhöhen, dadurch wird das Panel zur ProgressBar - mit eurer eigenen Hintergrundfarbe!

Der Sourcecode dafür:
Code:
panel1.Width += 1;
Um der selbst erstellten ProgressBar einen "maximal-Wert" zuzuweisen, benutzen wir die If-Abfrage.

Der Code lautet wie folgt:
Code:
if (panel1.Width == 400)
{
       timer1.Stop();
}
In meinem Fall sind 400 Pixel breite des Panels der maximalWert, ihr müsst das dann natürlich an die Breite eures Programms anpassen - es würde zwar kein Fehler kommen, aber die ProgressBar würde ohne die if Abfrage ins unendliche laufen.

Das Tutorial habe ich wegen einigen Fragen wie z.B. "Wie ändere ich die Hintergrundfarbe meiner ProgressBar" geschrieben. Ich hoffe es ist soweit übersichtlich und hat euch geholfen

mfg
A.W.E.S.O.M - O
StridingGiant is offline  
Old 06/18/2011, 17:39   #2
 
xNopex's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 827
Received Thanks: 471
Quote:
dazu gehört dann auch die Hintergrundfarbe eurer Wahl -diese könnt ihr bei der Standard ProgressBar nicht verändern!
Könnte man schon:



Aber wer will das schon? Meistes sehen die Designs nachher eher amateurhafter, als besser aus...
xNopex is offline  
Old 06/18/2011, 17:41   #3


 
elite*gold: 0
Join Date: Jul 2009
Posts: 3,357
Received Thanks: 705
Naja, es geht, ist aber umständlicher als diese Variante
StridingGiant is offline  
Old 06/18/2011, 17:48   #4
 
xNopex's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 827
Received Thanks: 471
Quote:
Naja, es geht, ist aber umständlicher als diese Variante
Ich weiß nicht, ob sich der programmiertechnische Aufwand lohnt, sich eine eigene Progressbar-Klasse zu programmieren, nur weil man die Farben ändern möchte. V.a. da es Wege gibt die Standard-Progressbar auch "einzufärben", ohne dabei auf die Vorzüge des bereitgestellten Steuerelements verzichten zu müssen.
Man hat also die Qual der Wahl: Entweder man verzichtet auf Visual Styles und kann das standard Steuerelement beliebig "designen", oder man entwickelt eine im Vergleich zum standard Steuerelement, amateurhafte und sicherlich fehlerbehaftene Version. Die Klügste Lösung: Auf eigene Gestaltungen verzichten.

EDIT: Vllt kannst du ja mal ein Screenshot von deiner Progressbar reinstellen, dass man auch mal sieht, wie sie ausschaut.
xNopex is offline  
Old 06/21/2011, 05:59   #5
 
GotDamned's Avatar
 
elite*gold: 0
Join Date: Nov 2008
Posts: 1,918
Received Thanks: 3,080
Ich wollte es gerade anmerken, wenn man das so macht wie von dir beschrieben verzichtet man auf die VisualStyles.
Und die will man ganz sicher nicht nach pogrammieren.

Zum fehlerbehafteten, wo bitte sollen da Fehler sein?
Du hast dein Panel und anstatt der Progressbar einen Wert zuzuweisen, erhöhst du die Größe des Panels.
Wer das nicht hin bekommt, bekommt auch keine Progressbar hin.

Allerdings würde ich 2 Panels verwednen
1 Panel würde quasi als Rahmen dienen, von dem man auch den Borderstyle schön einstellen könnte.
Das andere Panel würde einfach im ersten Panel liegen und hätte die Dock-Eigenschaft auf Fill gesetzt.
Und dann einfach nur vom 2ten Panel die Größe ändern.
Ganz nebenbei würde das Panel somit auch keine Programmteile überdecken können, da man ja nie mehr sieht, als das erste Panel zeigt.
GotDamned is offline  
Old 06/22/2011, 13:48   #6
 
|R.o.x|'s Avatar
 
elite*gold: 164
Join Date: Feb 2010
Posts: 1,130
Received Thanks: 1,025
Gut das CSharp, VB.Net ähnelt, oder andersrum
Ist zwar sehr einfach, aber kann manchmal auch nützlich sein.
In VB.Net würde der Code so aussehen :
PHP Code:
  Dim Value 0
    
Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
        Panel1
.Width 1
        Value 
0
        Timer1
.Start()

    
End Sub

    
Private Sub Timer1_Tick(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Timer1.Tick
        
If Not Panel1.Width 400 Then
            Panel1
.Width += 1
            Value 
+= 1
            Label1
.Text Value
        
Else
            
Timer1.Stop()

        
End If
    
End Sub

    
Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
        Label1
.Text Value
    End Sub

    
Private Sub Form1_Resize(ByVal sender As ObjectByVal e As System.EventArgsHandles Me.Resize
        Button1
.Size = New Size(Me.WidthMe.Height 15.6)
        
Label1.Location = New Point(Me.Width 100Me.Height 60)
        If 
Timer1.Enabled True Then
            Panel1
.Size = New Size(ValueMe.Height 1.5)
        Else
            
Panel1.Size = New Size(1Me.Height 1.5)
        
End If

    
End Sub 
|R.o.x| is offline  
Old 09/26/2011, 22:33   #7
 
xXSaiuXx's Avatar
 
elite*gold: 0
Join Date: Sep 2011
Posts: 87
Received Thanks: 10


Wo steckt in diesem TuT der tiefere Sinn???
Ich finde, wenn man schon die Möglichkeit hat einen vordefinierten
Progressbar auszuwählen, dann sollte man dies auch tun.
xXSaiuXx is offline  
Reply


Similar Threads Similar Threads
Konfis nicht veränderbar
06/10/2011 - DarkOrbit - 4 Replies
Moin, ich brauch eure Hilfe. meine konfis spacken total rum, es kommt immer ein fettes ERROR. mein schild wird erst gar nicht angezeigt. kennt jemand ein trick um die konfis wieder zu verändern? grüße
Weihnachtsbaum kords veränderbar?
12/11/2010 - Metin2 Private Server - 4 Replies
hey mal so ne kleine und kurze frage Kann man die kords vom weihnachtsbaum eigendlich ändern? wenn ja,sieht man ihn dann noch? und wo sind den eigendlich die kords vom weihnachtsbaum habse iner quest net gefunden.
[C#]Fensterposition nicht veränderbar
06/06/2010 - .NET Languages - 4 Replies
Hey leute, Ich habe heute mit einem Projekt angefangen, das nur ein Bild als Form benutzt. Screen: http://img266.imageshack.us/img266/543/problemv.j pg Das Orangene müsst ihr euch weg denken. Nur jetzt ist das Problem, das ich das Fenster nicht mehr bewegen kann. Kann mir da jemand helfen?
Horse Color (This Program Tells You Your Horse's EXACT Color Values)
10/21/2009 - CO2 Exploits, Hacks & Tools - 35 Replies
CURRENTLY: WORKING (Patch 5157) Alright guys, finally got around to updating and fixing this program... the way it works now is, just run the program, equip the horse you want to look at, and it'll show you it's Color Stats... in future versions I will be making it so u can equip one horse, then another, and it'll tell you what each horse's value is AND what would be the result if u combined them... and maybe even a little further into the future I will release a program that'll allow you to...
PSI POOL veränderbar?
09/12/2005 - General Gaming Discussion - 10 Replies
Ist es möglich den Psi Pool zu beeinflussen? so das spells nixmehr abziehen oder weniger? das heisst gefälschte packete zum server zu schicken? MfG Imperium



All times are GMT +2. The time now is 01:39.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.