Главная страницаОбратная связьКарта сайта
Источник: http://stroy-z.ru.

Выделение элемента в ListBoxе при нажатии на правую клавишу мыши



'Пример 1

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_ITEMFROMPOINT = &H1A9

Private Sub Form_Load()
List1.AddItem "11"
List1.AddItem "22"
List1.AddItem "33"
End Sub

Private Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim indeX As Long
Dim XPosition As Long, YPosition As Long

XPosition = CLng(X / Screen.TwipsPerPixelX)
YPosition = CLng(Y / Screen.TwipsPerPixelY)
indeX = SendMessage(List1.hWnd, LB_ITEMFROMPOINT, 0, ByVal ((YPosition * 65536) + XPosition))
If indeX < List1.ListCount Then
List1.Selected(indeX) = True
End If
End Sub

'Пример 2

Private Sub Form_Load()
List1.AddItem "11"
List1.AddItem "22"
List1.AddItem "33"
End Sub

Private Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim iTemp As Integer

If Button = vbRightButton Then
With List1
iTemp = ((Y / Screen.TwipsPerPixelY) \ (TextHeight("A") / Screen.TwipsPerPixelY)) + .TopIndex
If iTemp > .ListCount - 1 Then iTemp = -1
.ListIndex = iTemp
.SetFocus
End With
End If
End Sub


Обсудить статью на форуме


Если Вас заинтересовала или понравилась информация программирование на Visual Basic - "Выделение элемента в ListBoxе при нажатии на правую клавишу мыши", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу:

Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!
   


Copyright © 2008 - 2017 Дискета.info