Rubrik: Controls · ListBox | VB-Versionen: VB4, VB5, VB6 | 10.09.03 |
ListBox-Eintrag setzen ohne Click-Ereignis Wie man einen ListBox-Eintrag per Code auswählt, ohne dass autom. das Click-Ereignis ausgelöst wird, zeigt dieser Tipp. | ||
Autor: Dieter Otter | Bewertung: | Views: 16.577 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Haben Sie sich auch schon oft darüber geärgert, dass beim Setzen der ListIndex-Eigenschaft einer ListBox per Code autom. auch immer das Click-Ereignis ausgelöst wird?
Nachfolgender Tipp sorgt ab sofort für Abhilfe!
' Benötigte API-Deklarationen Private Declare Function SendMessage Lib "user32" _ Alias "SendMessageA" ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ lParam As Any) As Long Private Const LB_SETCURSEL = &H186
' ListBox-Eintrag selektieren ohne ' Click-Ereignis Public Sub LB_SetIndex(oList As ListBox, _ ByVal nIndex As Long) SendMessage List1.hWnd, LB_SETCURSEL, nIndex, 0& End Sub
Kopieren Sie obigen Code am besten in ein Modul.
Statt bisher:
List1.ListIndex = 0
schreiben Sie ab sofort...
LB_SetIndex List1, 0
... und das Click-Ereignis wird nur noch dann ausgelöst, wenn der Anwender einen Eintrag entweder per Maus oder per Tastatur auswählt.
Ach ja: soll kein Eintrag in der Liste selektiert sein, einfach -1 als Parameter angeben:
LB_SetIndex List1, -1