Neuer Timer in einer Funktion

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Neuer Timer in einer Funktion

    Hallo, ich habe eine Frage.
    Ich habe eine Funktion,welche auf Mausklick eine Neue Picturebox erstellt. Ich möchte jetzt das sich diese Pictureboxen nach oben und unten bewegen.
    Aktuell habe ich nur einen Timer, den ich vorher in die Form eingefügt habe, der natürlich nur die aktuellste Picturebox bewegt.
    Ich habe versucht mit

    VB.NET-Quellcode

    1. Dim boxtimer As New Timer

    zu arbeiten, aber ich finde die .tick Funktion nicht (Wie bei den Normalen Timern).
    Könnte mir jemand einen Tipp geben wie ich das ganze hinbekomme?


    Hier ist noch mein Aktueller Code

    VB.NET-Quellcode

    1. Dim boxtimer As New Timerboxtimer.Enabled = True boxtimer.Interval = 1000



    VB.NET-Quellcode

    1. Friend WithEvents Timer1 As System.Windows.Forms.Timer


    Das reicht, um das hinzubekommen:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    3. End Sub
    4. End Class
    Willkommen im Forum. :thumbup:

    TrollMufifn schrieb:

    Könnte mir jemand einen Tipp geben wie ich das ganze hinbekomme?
    Erstell doch den 2. Timer gleich im Designer, Du musst ihn ja nicht aktivieren.
    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!
    Ok erstmal danke für die schnellen Antworten :)
    Aber ich glaube ich hab mich schlecht ausgedrückt.
    Ich wollte mit jedem Klick einen neuen Timer für die jeweils neue Picturebox (eigentlich kann man das mit einem Laserschuss bei Spaceinvaders vergleichen :D).
    Aktuell bewegt sich immer nur die Aktuellste Picturebox.

    Eigentlich müsste ich doch mit jedem Klick einen Neuen Timer hinzufügen, sein Interval bestimmen, ihn Aktivieren und im Anschluss seine Funktion zuweisen, oder hab ich da einen Denkfehler drin?
    Wenn das soweit richtig ist, habt ihr eine Idee wie ich die Funktion reinschreiben kann, um nicht vorher tausende von Subs zu schreiben?

    Schonmal Danke im Vorraus :)

    VB.NET-Quellcode

    1. Dim Bild As PictureBox
    2. Friend WithEvents boxtimer As Windows.Forms.Timer
    3. Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
    4. Dim Bild As New PictureBox
    5. Bild.Left = MousePosition.X + 5
    6. Bild.Top = MousePosition.Y - 5
    7. Bild.Width = 20
    8. Bild.Height = 20
    9. Bild.BackColor = Color.Black
    10. Controls.Add(Bild)
    11. Dim boxtimer As New Timer
    12. boxtimer.Interval = 1000
    13. boxtimer.Enabled = True
    14. tick()
    15. End Sub
    16. Sub tick() Handles boxtimer.Tick
    17. End Sub

    TrollMufifn schrieb:

    Ich wollte mit jedem Klick einen neuen Timer für die jeweils neue Picturebox
    Dann mach Dir am besten ein UserControl mit PictureBox und Timer.
    Wieviele von den Dingern gedenkst Du denn zu erzeugen?

    TrollMufifn schrieb:

    Aktuell bewegt sich immer nur die Aktuellste Picturebox.
    Ist die aktuellste PictureBox aktueller als die aktuelle PictureBox :?: :thumbsup: :thumbsup: :thumbsup:
    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!