Vor kurzem wurde im Forum gefragt, wie man beim Einsatz des ListView-Controls eine Mehrfachauswahl per einfachen Mausklick realisieren kann, ohne hierbei immer die STRG-Taste drücken zu müssen. Nachfolgend ein Ansatz, wie sich das Ganze realisieren lässt. Der Trick besteht darin, dem System vorzugaukeln, dass die STRG-Taste immer gedrückt ist. Dies erreichen wir, indem wir im GotFocus-Ereignis die Keybd_Event-Funktion aufrufen. Im LostFocus-Ereignis wird das Ganze dann wieder deaktiviert. Option Explicit ' benötigte API-Deklarationen Private Declare Sub keybd_event Lib "user32" ( _ ByVal bVk As Byte, _ ByVal bScan As Byte, _ ByVal dwFlags As Long, _ ByVal dwExtraInfo As Long) Private Const KEYEVENTF_KEYUP = &H2 Private Const VK_CONTROL = &H11 Dim bCtlPressed As Boolean Private Sub Form_Load() Dim i As Long With ListView1 ' ListView initialisieren .View = lvwReport .MultiSelect = True .FullRowSelect = True .ColumnHeaders.Add , , "Spalte", 2000 ' ein paar Test-Einträge For i = 1 To 100 .ListItems.Add , , "Eintrag " & CStr(i) Next i End With End Sub Private Sub ListView1_GotFocus() ' Niederdrücken der STRG-Taste simulieren ' (STRG-Taste bleibt hierbei solange gedrückt, ' wie das ListView den Fokus besitzt) bCtlPressed = True keybd_event VK_CONTROL, 1, 0, 0 End Sub Private Sub ListView1_LostFocus() ' STRG-Taste wieder loslassen If bCtlPressed Then keybd_event VK_CONTROL, 1, KEYEVENTF_KEYUP, 0 bCtlPressed = False End If End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) ' Sicherstellen, dass die STRG-Taste wieder losgelassen wird ListView1_LostFocus End Sub Dieser Tipp wurde bereits 1.296 mal aufgerufen.
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv (einschl. Beispielprojekt!) Ein absolutes Muss - Mehr als 650 MByte geballtes Wissen! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - Online-Update-Funktion u.v.m. |
sevWizard für VB5/6 ![]() Professionelle Assistenten im Handumdrehen Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Buchempfehlung Tipp des Monats Dieter Otter Doppelte Werte bei Ausgabe eines Arrays unterdrücken Hier stellen wir 3 Möglichkeiten vor, wie man doppelte Werte bei der Ausgabe eines Arrays unterdrücken kann. Unser Dauerbrenner! ![]() 650 MB geballtes Wissen aus 6 Jahren vb@rchiv Online-Update-Funktion Entwickler-Vollversionen u.v.m. |
||||||||||||||||
|
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. |
|||||||||||||||||


Mehrfachauswahl im ListView per einfachen Klick



