Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: jack06 en 12 Noviembre 2017, 16:43 pm



Título: Seleccionar un Item de un Listview y darle click derecho
Publicado por: jack06 en 12 Noviembre 2017, 16:43 pm
Buenos dias,

Alguien me puede hechar una manito, les explico de que es lo que deseo hacer, espero me puedan dar una manito:

Tengo un ListView, y picture, entonces lo que trato de hacer es que al seleccionar un item del listview, y le doy click derecho a ese item seleccionado me aparezca el picture y asi sucesivamente por cada item...



Título: Re: Seleccionar un Item de un Listview y darle click derecho
Publicado por: jack06 en 12 Noviembre 2017, 17:11 pm
Buenas, ya encontre la forma de como hacerlo

Código:
Private Sub LvArtRepues_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)

    'variable para el item seleccionado
    Dim Item As ListItem
     
    ' verifica que se presionó el botón derecho
    If Button = vbRightButton Then
         
        ' HitTest devuelve la ferencia al item, a partir _
         de las coordenadas del mouse
        Set Item = LvArtRepues.HitTest(x, y)
         
        ' chequea que haya un item seleccionado
        If Not Item Is Nothing Then
             
            ' Selecciona el elemento
            Set LvArtRepues.SelectedItem = Item
             
            ' texto del elemento seleccionado
            Me.Caption = Item.Text
           
            PicContainer.Visible = True
            lblListaDe.Caption = LvArtRepues.SelectedItem.SubItems(1)
           
        End If
       
     Else
     
        PicContainer.Visible = False
                 
    End If
   
End Sub

Ahora el detalle es que me aparece el Picture donde lo posicione en tiempo de diseño, se puede mover el picture segun se haga click en cada item, la idea es que aparezca debajo del item seleccionado se podra?


Título: Re: Seleccionar un Item de un Listview y darle click derecho
Publicado por: okik en 12 Noviembre 2017, 19:45 pm
Hola
Simplemente usa las coordenadas del mouse para mover el picture:

Código
  1.       PicContainer.Left = ListView1.ColumnHeaders.Item(1).Width '//Coloca la imagen al final de la columna
  2.           'PicContainer.Left = Item.Width + 50 '//Coloca la imagen al final de texto
  3.           'PicContainer.Left = x '//Coloca la imagen en el lugar del puntero
  4.           PicContainer.Top = Item.Top + Item.Height + 40

Ejemplo:
Código
  1. Private Sub Listview1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
  2.    'variable para el item seleccionado
  3.    Dim Item As ListItem
  4.  
  5.    ' verifica que se presionó el botón derecho
  6.    If Button = vbRightButton Then
  7.  
  8.        ' HitTest devuelve la ferencia al item, a partir _
  9.          de las coordenadas del mouse
  10.        Set Item = ListView1.HitTest(x, y)
  11.  
  12.        ' chequea que haya un item seleccionado
  13.        If Not Item Is Nothing Then
  14.  
  15.            ' Selecciona el elemento
  16.            Set ListView1.SelectedItem = Item
  17.  
  18.            ' texto del elemento seleccionado
  19.            Me.Caption = Item.Text
  20.  
  21.            PicContainer.Visible = True
  22.            lblListaDe.Caption = ListView1.SelectedItem.SubItems(1)
  23.           PicContainer.Left = ListView1.ColumnHeaders.Item(1).Width '//Coloca la imagen al final de la columna
  24.           'PicContainer.Left = Item.Width + 50 '//Coloca la imagen al final de texto
  25.           'PicContainer.Left = x '//Coloca la imagen en el lugar del puntero
  26.           PicContainer.Top = Item.Top + Item.Height + 40
  27.        End If
  28.  
  29.     Else
  30.  
  31.        PicContainer.Visible = False
  32.  
  33.    End If
  34.  
  35. End Sub
  36.  
  37.  

Como ves he deshabilitado varias líneas de código a la hora de colocar la imagen, una al final de la columna (habilitada), otra al final del texto, y otra justo en el mismo lugar en el que se encuentre el puntero. Según te guste más.


suerte