vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2016
 
zurück
Rubrik: Controls   |   VB-Versionen: VB2005, VB200803.12.09
Dauer-Aktion während Button-Click ausführen

Dieser Tipp stellt zwei Varianten vor, wie man eine Dauer-Aktion ausführen kann, solange ein Button gedrückt wird.

Autor:   Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  7.840 
www.tools4vb.deSystem:  Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Summer-Special bei Tools & Components!
Gute Laune Sommer bei Tools & Components
Top Summer-Special - Sparen Sie teilweise bis zu 120,- EUR
Alle sev-Entwicklerkomponenten und Komplettpakete jetzt bis zu 25% reduziert!
zum Beispiel:
  • Developer CD nur 479,20 EUR statt 599,- EUR
  • sevDTA 2.0 nur 224,30 EUR statt 299,- EUR
  •  
  • vb@rchiv   Vol.6 nur 20,00 EUR statt 24,95 EUR
  • sevCoolbar 3.0 nur 55,20 EUR statt 69,- EUR
  • - Werbung -Und viele weitere Angebote           Aktionspreise nur für kurze Zeit gültig

    Kürzlich wurde im Forum gefragt, wie man eine bestimmte Aktion ausführen, wenn man auf einen Button klickt. Das besondere daran: die Aktion so so lange ausgeführt werden, wie der Button gedrückt gehalten wird.

    Variante 1:
    Beim Klick auf den Button starten wir einen Timer, so dass die Aktion in einem fest vorgegebenen Intervall ausgeführt wird. Wird die Maustaste losgelassen, stoppen wir den Timer, so dass die Aktion autom. beendet wird.

    Public Class Form1
      Private WithEvents oTimer As Timer
      Private Counter As Long
     
      Private Sub Button1_MouseDown(ByVal sender As Object, _
        ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseDown
     
        ' Timer starten
        If IsNothing(oTimer) Then oTimer = New Timer
        oTimer.Interval = 100
        oTimer.Start()
      End Sub
     
      Private Sub Button1_MouseUp(ByVal sender As Object, _
        ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseUp
     
        ' Timer stoppen
        oTimer.Stop()
      End Sub
     
      Private Sub oTimer_Tick(ByVal sender As Object, _
        ByVal e As System.EventArgs) Handles oTimer.Tick
     
        ' Aktion ausführen
        ' hier Vartiable hochzählen
        Counter += 1
     
        ' zum Test: Anzeige in der Titelzeile
        Me.Text = Counter
      End Sub
    End Class

    Variante 2:
    Hier wird die Aktion nicht über ein Timer ausgeführt, sondern innerhalb einer Endlosschleife:

    Public Class Form1
      Private bMouseDown As Boolean
      Private Counter As Long
     
      Private Sub Button1_MouseDown(ByVal sender As Object, _
        ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseDown
     
        ' Aktion starten
        If Not bMouseDown Then
          bMouseDown = True
          Do While bMouseDown
            ' Aktion ausführen
            ' hier: Counter erhöhen
            Counter += 1
     
            ' zum Test: Anzeige in der Titelzeile
            Me.Text = Counter
     
            ' ggf. kurz warten
            System.Threading.Thread.Sleep(100)
     
     
            ' Wichtig: damit man auf das MouseUp-Event reagieren kann
            Application.DoEvents()
          Loop
        End If
      End Sub
     
      Private Sub Button1_MouseUp(ByVal sender As Object, _
        ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseUp
     
        ' Aktion beenden
        bMouseDown = False
      End Sub
    End Class

    Dieser Tipp wurde bereits 7.840 mal aufgerufen.

    Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

    Über diesen Tipp im Forum diskutieren
    Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

    Neue Diskussion eröffnen

    nach obenzurück


    Anzeige

    Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
    (einschl. Beispielprojekt!)

    Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
    - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
    - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
    Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
     
       

    Druckansicht Druckansicht Copyright ©2000-2016 vb@rchiv Dieter Otter
    Alle Rechte vorbehalten.
    Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

    Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel