Anfänger braucht hilfe bei Randomize, Color, Timer

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Ghostix.

    Anfänger braucht hilfe bei Randomize, Color, Timer


    Also habe folgendes problem ich bin gerade dabei eine art reaktionstest Programm zu basteln jetzt bekomme ich es aber nicht hin das er die BackColor der Buttons nach jeder sekunde ändert ich habe von meiner seite aus schon alles getan aber ich glaube ich bin einfach zu doof :wacko:
    Und bitte ich bin ein anfänger ich habe kein bok auf dumme kommentare von leuten die das schon seid jahren machen jeder hat mal klein angefangen....DANKE :P
    Timer auf die Form ziehen
    Timer Interval auf 1000 stellen
    Doppelklick auf den Timer
    In den Sub folgendes schreiben: Button1.BackColor = Colors.Green 'Es gehen auch andere Farben zB. Colors.Blue
    Whos Faster ALPHA: Bald....
    DAnn solltest Du fragen, wie Du für ein Feld einen beliebigen Index-Zugriff machen kannst.

    VB.NET-Quellcode

    1. Private _random As New Random
    2. Private _colors() As Color = {Color.Red, Color.Gray, Color.Green, Color.Black, Color.Blue}
    3. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    4. Dim rr As Integer = _random.Next(_colors.Length)
    5. Button1.BackColor = _colors(rr)
    6. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    VB.NET-Quellcode

    1. Dim rand As New Random
    2. Select Case rand.Next(0,10)
    3. Case 1
    4. Button1.BackColor = Colors.Green
    5. Case 2
    6. Button1.BackColor = Colors.Blue
    7. Case 3
    8. Button1.BackColor = Colors.Black
    9. Case 4
    10. Button1.BackColor = Colors.Yellow
    11. Case 5
    12. Button1.BackColor = Colors.White
    13. 'Und so weiter
    14. End Select
    Whos Faster ALPHA: Bald....
    Zuerst brachst du einen Timer der einen Interval ert von 1000 hat wenn dieser DIREKT beim starten des Programms laufen soll stellst du ihn auch Enabled = True in den Eigenschaften da wo halt auch der Interval Festgelegt wird

    Einen Doppelklick auf den Timer in dem Designer und du kommst in den "Sub" des Timers wo du alles angibst was der Timer machen soll.

    Wenn du bestimmte Backgroundcolor´s haben willst speicherst du diese am besten in ein Array welches die Größe = anzahl der Farben - 1 hat z.B 8 Farben wäre ein Array mit der Größe 7

    VB.NET-Quellcode

    1. Dim Farben(7) as String


    Ich weiß nur gerade nicht genau ob man diese Farben in einem String Array Speichern kann da bin ich ein wenig Überfragt ich kann es auch grade nicht testen, weil ich nicht an meinem Notebook sitze. Auf jeden Fall würde ich ein Array nehmen. Und im Timer dann den Farbwechsel angeben, die Farben im Array kannst du dann mit

    VB.NET-Quellcode

    1. button1.backgroundcolor = Farben(1)

    somit wird die Zweite Farbe im Array angesprochen da ein Array auch eine 0 Stelle hat. Ich schreibe deswegen so ausführlich, da ich nicht weiß welche Kenntnisse du bereits hast. Ein wenig musst du natürlich selber überlegen wie z.B die 1 kannst du nicht im Timer angeben dann wechselt die Farbe natürlich nicht d.h du brauchst eine Zählvariable diese darf dann auch nur bis stelle 7 in meinem Beispiel zählen wenn sie bei 7 angekommen ist muss die Zählvariable natürlich wieder auf 0 zurückgesetzt werden, da es in meinem Beispielarray keine 8te stelle gibt.
    Die Farben kannst du so

    VB.NET-Quellcode

    1. Farben(0) = "RGB(0,0,255)"

    zuweisen.

    Ich hoffe das dir das weiterhilft.

    Lg
    Symphonie89

    //EDIT: Wie man sieht hab ich ein wenig zulange gebraucht aber jetzt hast du denke ich mal genug Lösungsvorschläge um dein Vorhaben zu Realisieren ^^