vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2019
 
zurück
Rubrik: Oberfläche · Menüs   |   VB-Versionen: VB5, VB604.12.07
Menü mit _KeyDown-Event

Das Menü in VB besitzt leider kein _KeyDown() -Event. Hier nun ein Script mit dem Sie diesen "Fehler" ausbügeln können.

Autor:   Jürgen FienauBewertung:     [ Jetzt bewerten ]Views:  8.180 
computer.net-berlin.deSystem:  Win9x, WinNT, Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Das Menü in VB besitzt leider kein _KeyDown() -Event. Wie kann man aber nach Ausklappen eines Menüs bspw. die Shift-Taste auswerten?

Nachfolgend eine Möglichkeit, die zeigt, wie's geht.

Benötigt wird hierzu ein Timer-Control, in dem die Shift- und Strg-Tasten über die API-Funktion GetAsyncKeyState abgefragt und in einer globalen Variable gespeichert werden. Der Timer wird immer dann gestartet, wenn ein Menüeintrag in der obersten Ebene (Menüleiste) angeklickt wurde.

Option Explicit
 
' benötigte API-Deklarationen
Private Declare Function GetAsyncKeyState Lib "user32.dll" ( _
  ByVal nVirtKey As Long) As Integer
 
Dim bShift As Boolean
Dim bStrg As Boolean
Private Sub MenuFile_Click()
  ' Timer starten
  tmrHotKey.Interval = 10
  tmrHotKey.Enabled = True
End Sub
Private Sub tmrHotKey_Timer()
  bShift = False
  bStrg = False
 
  ' Prüfen, ob Shift-Taste gedrückt
  If GetAsyncKeyState(vbKeyShift) And 1 = 1 Then bShift = True 
 
  ' Prüfen, ob Strg-Taste gedrückt
  If GetAsyncKeyState(vbKeyControl) And 1 = 1 Then bStrg = True
End Sub

Im Click-Event des jeweiligen Eintrags des Menüs können Sie dann den Status der Shift und Strg-Taste abfragen:

Private Sub mnuFileNew_Click()
  ' Wichtig! Timer wieder ausschalten
  tmrHotKey.Enabled = False
 
  If bShift Then ...
  If bStrg Then ...
 
  ...
End Sub

Dieser Tipp wurde bereits 8.180 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-2019 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