La Web del Programador: Comunidad de Programadores
 
    Pregunta:  15657 - SELECCIóN DE UN OBJETO LISTITEM CON EL EVENTO MOUSE_DOWN
Autor:  Agustín Dávila Martín
Hola ante todo graciás de antemano a aquel/aquella que pueda solucinarme el problema.
Mi problema consiste que cuando intento controlar el elemento seleccionado en un listview pulsando el botón derecho del ratón, el elemento que me recoge era el último que había seleccionado.
Claro está, esto sólo me pasa cuando utlizo el evento Mouse_Down, ya que lo necesito debido a que este evento tiene la propiedad "Button" que me indica que tipo de pulsación he hecho.
Si sabeis la solución os lo agradecería mucho que me la remitieseis.

Gracias

  Respuesta:  Mauricio Leyzaola
En el formulario declara una variable booleana que sirva como bandera y otra que atrape el valor del boton del mouse.

Option Explicit
Private bMouseDown as Boolean
Private nButtonClicked as Integer

Private Sub Lv_Click()
If bMouseDown Then MsgBox "Ya hizo click con el botón" & nButtonClicked
End Sub

Private Sub Lv_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
nButton = Button
End Sub

Como primero ocurre el evento MouseDown, le puedes asignar el valor del boton presionado y luego, cuando se active el evento del Click, puedes tomar las acciones necesarias, sabiendo que botón fue el que presionó. Saludos.