Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long Const LB_GETITEMHEIGHT = &H1A1
Private Sub Form_Load() List1.AddItem "aaa" List1.AddItem "bbb" List1.AddItem "ccc" List1.AddItem "ddd" List1.AddItem "eee" End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) List1.ListIndex = -1 End Sub
Private Sub List1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim ItemHeight As Integer
ItemHeight = SendMessage(List1.hWnd, LB_GETITEMHEIGHT, 0, 0) Y = min(((Y / Screen.TwipsPerPixelY) \ ItemHeight) + List1.TopIndex, List1.ListCount - 1) Label1.Caption = "Выделен элемент " & Y List1.ListIndex = Y End Sub
Function min(X As Integer, Y As Integer) As Integer If X > Y Then min = Y Else min = X End Function
Если Вас заинтересовала или понравилась информация программирование на Visual Basic - "Автоматическое выделение элемента в ListBoxе", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу: Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!