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...
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?
Hola
Simplemente usa las coordenadas del mouse para mover el picture:
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:
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