Seleccionar un Item de un Listview y darle click derecho

Iniciado por jack06, 12 Noviembre 2017, 16:43 PM

0 Miembros y 1 Visitante están viendo este tema.

jack06

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...

(̅_̅̅_̅(̅_̅_̅_̅_̅() ڪ €l $åßîø nø d nµn¢å tødø lø qµ£ Þî£n$å, Þ£®ø $î£mÞ®£ Þî£n$å tødø lø qµ£ d (̅_̅̅_̅(̅_̅_̅_̅_̅() ڪ

jack06

Buenas, ya encontre la forma de como hacerlo

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?
(̅_̅̅_̅(̅_̅_̅_̅_̅() ڪ €l $åßîø nø d nµn¢å tødø lø qµ£ Þî£n$å, Þ£®ø $î£mÞ®£ Þî£n$å tødø lø qµ£ d (̅_̅̅_̅(̅_̅_̅_̅_̅() ڪ

okik

#2
Hola
Simplemente usa las coordenadas del mouse para mover el picture:

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


Ejemplo:
Código (vb) [Seleccionar]

Private Sub Listview1_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 = ListView1.HitTest(x, y)
         
       ' chequea que haya un item seleccionado
       If Not Item Is Nothing Then
             
           ' Selecciona el elemento
           Set ListView1.SelectedItem = Item
             
           ' texto del elemento seleccionado
           Me.Caption = Item.Text
           
           PicContainer.Visible = True
           lblListaDe.Caption = ListView1.SelectedItem.SubItems(1)
          PicContainer.Left = ListView1.ColumnHeaders.Item(1).Width '//Coloca la imagen al final de la columna
          'PicContainer.Left = Item.Width + 50 '//Coloca la imagen al final de texto
          'PicContainer.Left = x '//Coloca la imagen en el lugar del puntero
          PicContainer.Top = Item.Top + Item.Height + 40
       End If
       
    Else
   
       PicContainer.Visible = False
               
   End If
   
End Sub



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