vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Controls · Sonstiges   |   VB-Versionen: VB4, VB5, VB624.05.04
DblClick Event für den CommandButton

Eine Klasse, mit der sich die Standard-CommandButtons von VB mit einem DblClick-Ereignis ausstatten lassen.

Autor:   Roland WutzkeBewertung:     [ Jetzt bewerten ]Views:  12.972 
www.vb-power.netSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Eins der wohl meist benutzten Controls in VB ist der CommandButton. Doch was ihm fehlt, ist ein DblClick-Ereignis. Hier haben die Entwickler von Microsoft gegeizt Ab sofort ist damit Schluss - wir verpassen dem Button einfach nachträglich dieses Ereignis.

Sicherlich könnten Sie jetzt sagen - ist ja kein Problem, ich prüfe einfach das Click Ereignis mit einem Timer. Eleganter und unabhängiger geht es aber mit einer Klasse.

Das Klassenmodul clsCmdDblClick:

Eigenschaften:

  • ButtonToHandle: Übergeben wird der Button aus der aufrufenden Form
  • DblClickTime: Optional, übergeben wird die Zeit in Millisekunden

Ereignis:

  • DblClick: Wird bei einem Doppelklick ausgelöst

Die Klasse liest bei der Initialisierung automatisch die im System eingestellte Doppelklickzeit aus und weist sie der Eigenschaft DblClickTime als Default-Wert zu.

Starten Sie ein neues Projekt und legen Sie ein neues Klassenmodul an. Benennen Sie die Klasse clsCmdDblClick. Fügen Sie den nachfolgenden Code in das Codefenster der Klasse ein.

' ********************************************************
' *
' *   clsCmdDblClick - Klasse
' *
' *   Stattet einen CommandButton mit einem DblClick
' *   Ereignis aus. Die Klasse wird dabei automatisch
' *   mit der im System eingestellten DblClickTime
' *   eingestellt.
' *
' *   Eigenschaften:
' *      ButtonToHandle:   Übergeben wird der Button aus
' *                        der aufrufenden Form.
' *      DblClickTime:     Optional, übergeben wird die
' *                        DblClickTime in mSek.
' *
' *   Mai 2004 - www.vb-power.net und Roland Wutzke
' *
' ********************************************************
 
Option Explicit
 
' benötigte API
Private Declare Function GetDoubleClickTime Lib "user32" () As Long
 
' KlassenVars
Private WithEvents oButton As CommandButton
Private oDblClickTime As Single
 
' Ereignis
Public Event DblClick()
Private Sub Class_Initialize()
  ' Wir holen uns die DoubleClickTime
  ' aus dem System ;-)
  oDblClickTime = GetDoubleClickTime / 1000
End Sub
 
Private Sub Class_Terminate()
  ' Klasse zerstören
  If Not oButton Is Nothing Then
    Set oButton = Nothing
  End If
End Sub
Private Sub oButton_Click()
  Static DblClickLast As Single
 
  ' Prüfen, ob innerhalb der DblClickTime
  ' der CommandButton 2 mal gedrückt wurde.
  If Timer - DblClickLast < oDblClickTime Then
    ' DblClick Ereignis auslösen
    RaiseEvent DblClick
  End If
 
  ' Prüfzeit initialisieren
  DblClickLast = Timer
End Sub
' Eigenschaften der Klasse
Public Property Set ButtonToHandle(ByVal vData As CommandButton)
  Set oButton = vData
End Property
 
Public Property Let DblClickTime(ByVal vData As Long)
  oDblClickTime = vData / 1000
End Property

Nachfolgend ein Beispiel, wie Sie einen Button mit dem neuen Ereignis ausstatten können. Platzieren Sie auf der Form einen CommandButton (Command1) und fügen Sie den nachfolgenden Code in das Codefenster der Form ein:

Option Explicit
 
' Klasse mit Ereignis
Private WithEvents MyButton As clsCmdDblClick
Private Sub Form_Load()
  ' Klasse instanzieren
  Set MyButton = New clsCmdDblClick
 
  ' Eigenschaften zuweisen
  With MyButton
    Set .ButtonToHandle = Command1
    .DblClickTime = 500  ' optional
  End With
End Sub
' Das Ereignis DblClick
Private Sub MyButton_DblClick()
  MsgBox "Doppelklick"
End Sub

Dieser Tipp wurde bereits 12.972 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-2024 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