Timer für picturebox

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von Bernd.

    Timer für picturebox

    Hallo zusammen,

    ich habe greade ein kleines problem, unzwar habe ich 7 picturebox nebeneinander, und will das die letzte (Rechts) also picturebox7. nach 30 sekunden auf picturebox7.hide gestellt wird.
    Das bekomme ich ja mit einen Timer hin ... intervall auf : 30000 setzten und timer1.enabled = true.
    So nun möchte ich aber das wenn picturebox7.hide ist das er wieder 30 sekunden wartet und dann
    picturbox6.hide macht also immer so weiter nach unten.


    wie geht sowas?

    Code wäre lieb.

    Mfg. VbTutorials11
    Variable rückwärts zählen und kleine schleife.

    Dim Integer_variable as Integer = 7

    For i = 7 to 1 step -1
    Integer_variable = i
    next

    forch each control as control in me.controls
    if typ of control is PictureBox

    if control.name contains(integer_variable.tostring) then
    control.visible = false
    else
    control.visible = true


    irgend wie so.
    aus em kopf ohne IDE
    sorry
    Ok nun mit IDE, weil ich heute gut drauf bin

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim Sieben As Integer = 8
    3. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    4. Sieben -= 1
    5. For Each Control As Control In Me.Controls
    6. If TypeOf Control Is PictureBox Then
    7. If Control.Name.Contains(Sieben.ToString) Then
    8. Control.Visible = True
    9. Else
    10. Control.Visible = False
    11. End If
    12. End If
    13. Next
    14. If Sieben <= 0 Then Sieben = 8
    15. End Sub
    16. End Class

    Bernd schrieb:

    Ok nun mit IDE, weil ich heute gut drauf bin

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim Sieben As Integer = 8
    3. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    4. Sieben -= 1
    5. For Each Control As Control In Me.Controls
    6. If TypeOf Control Is PictureBox Then
    7. If Control.Name.Contains(Sieben.ToString) Then
    8. Control.Visible = True
    9. Else
    10. Control.Visible = False
    11. End If
    12. End If
    13. Next
    14. If Sieben <= 0 Then Sieben = 8
    15. End Sub
    16. End Class

    jetzt sieht es so aus als wenn er eine picturebox nach links zieht bzw 7 zeigt dan 6 5,4,3,2,1 ich will das mann alle sieht und der immer die letzte abbzieht.
    sorry...:(
    jetzt hast du ja ein beispiel.

    Rechnen müsstest du doch alleine können, bzw. umsetzen.

    Edit:
    jetzt mit absicht um dich zu verwirren.

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim Sieben As Integer = 8
    3. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    4. Sieben -= 1
    5. For Each Control As Control In Me.Controls
    6. If TypeOf Control Is PictureBox Then
    7. If Control.Name.Contains(Sieben.ToString) Then
    8. Control.Visible = Not Control.Visible ' False
    9. End If
    10. End If
    11. Next
    12. If Sieben <= 0 Then Sieben = 8
    13. End Sub
    14. End Class

    Jetz laufen die ständig von rechts nach links.
    Wie kriegst das jetzt anders umgesetzt ?

    hihi
    viel spass

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Bernd“ ()

    Soo benutze nun den Code hier.

    VB.NET-Quellcode

    1. Sieben -= 1
    2. For Each Control As Control In Me.Controls
    3. If TypeOf Control Is PictureBox Then
    4. If Control.Name.Contains(Sieben.ToString) Then
    5. Control.Visible = Not Control.Visible ' False
    6. End If
    7. End If
    8. Next
    9. If PictureBox1.Visible = False Then
    10. MsgBox("Sie haben Verloren")
    11. Timer1.Stop()
    12. End If


    Wäre es nun möglich wenn man einen button drückt das es sich auffült und also z.B heilt und dan wieder runterzählt? Er soll sich aber nicht erst heilen wenn er auf null ist.??
    Habe herumversucht aber nichts geklappt.



    ich hab's

    VB.NET-Quellcode

    1. Timer1.Stop()
    2. PictureBox1.Visible = True
    3. PictureBox2.Visible = True
    4. PictureBox3.Visible = True
    5. PictureBox4.Visible = True
    6. PictureBox5.Visible = True
    7. PictureBox6.Visible = True
    8. PictureBox7.Visible = True
    9. Sieben = 8
    10. Timer1.Start()

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VbTutorials11“ ()

    toll. länger als 6 Minuten bis eine Antwort kam.
    dann hast du vielleicht mal selber überlegt und getestet.

    Was hast du versucht ? kamen Fehler ? Welche Fehler ?


    Variable auf Startwert zurücksetzten und den Timer neu starten.

    Dann ist alles wie am Anfang. (meintest du doch mit Heilen?)
    Achso, aber wie setzte ich die variablen zurück, habe schon versucht irgendwie den timer neu zustarten...
    Aber wie setzte ich die Variablen zurrück?
    vlt mit

    VB.NET-Quellcode

    1. Sieben = 8

    dann fängt er neu an aber das alte bleibt.
    Also ich verstehe dich ja...
    so würde ich das jetzt in einen code umsetzten

    VB.NET-Quellcode

    1. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    2. Sieben = 8
    3. Timer1.Enabled = False
    4. If Timer1.Enabled = False Then
    5. Timer1.Start()
    6. End If

    ich starte den timer falsch neu könntest du mir vlt einen code geben?
    sorry ich bin ein echter flegefall xD *peinlich*

    Bin totaler anfänger und greade erst 14 Jahre alt.

    VbTutorials11 schrieb:

    Sieben = 8
    Timer1.Enabled = False
    If Timer1.Enabled = False Then
    Timer1.Start()

    doppelt gemoppelt

    der timer stop sich doch schon selber. warum denn nochmals stoppen ?

    Sieben = 0
    Forch Each.....
    Controls.Visible = True
    Next
    Timer1.Start

    mehr nicht

    Edit:
    Antwort auf PN

    VB.NET-Quellcode

    1. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    2. Timer1.Stop()
    3. PictureBox1.Visible = True
    4. PictureBox2.Visible = True
    5. PictureBox3.Visible = True
    6. PictureBox4.Visible = True
    7. PictureBox5.Visible = True
    8. PictureBox6.Visible = True
    9. PictureBox7.Visible = True
    10. Sieben = 8
    11. Timer1.Start()


    Mach soetwa nicht.
    versuche meinen Code oben zu verstehen. Das hilft dir dann auf längere Zeit mehr.

    VB.NET-Quellcode

    1. Public Class Form1
    2. ' Variable im Globalen Bereich deklarieren, damit er aus Form 1 überall ansprechbar ist
    3. Dim Sieben As Integer = 8
    4. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    5. ' wenn der Timer nach der angegebenen Zeit Startet, Variable verändern
    6. Sieben -= 1
    7. ' könnte auch so aussehen
    8. ' Sieben = Sieben - 1
    9. ' Jedes Control (alle die sich auf Form1 befinden. Butten, PictBoxen, Label....) durchlaufen
    10. For Each Control As Control In Me.Controls
    11. ' Fragen ob das Control eine PictureBox ist .
    12. If TypeOf Control Is PictureBox Then
    13. ' Fragen ob sich im Namen eine Zahl = Sieben befindet
    14. If Control.Name.Contains(Sieben.ToString) Then
    15. ' Wenn ja dann Visible Status Invertieren
    16. Control.Visible = Not Control.Visible ' False
    17. End If
    18. End If
    19. Next
    20. ' Varaible zurücksetzen
    21. If Sieben <= 0 Then Sieben = 8
    22. End Sub
    23. End Class


    und trotzdem habe ich dir noch einen Fehler eingebaut, den du nicht gemerkt hast.
    Aber villeicht findest du ihn ja noch.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Bernd“ ()