domingo, 15 de julio de 2012

Componente ListView


Este componente es muy parecido a ListBox con la posibilidad de poder añadir
un icono al texto de cada elemento.

Cada elemento que añadimos consta de una clave “key” que es única por cada elemento
de la lista, no se repite.

Para la selección de componente en vez de la propiedad “Index”.Usamos
“Item”.

Con Item podemos averiguar su texto y su imagen.

Hay que practicar para conocer este componente si estamos acostumbrado a ListBox. No entraña mucha dificultad y si mejoras.

He creado este ejemplo, con banderas marítimas internacionales para señales.
Donde podéis ver como se añade la clave, su nombre y si queremos una imagen.


---código----
Private directorio As String
Private abanderas As String[]
Private asignificado As String[] =
[
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"A.Tengo un buzo sumergido.Manténgase alejado y reduzca velocidad.",
"B. Estoy cargando, descargando o transportando mercancías peligrosas.",
"C. Afirmativo",
"D. Maniobro con dificultad. Manténgase alejado.",
"E. Estoy virando a estribor.",
"F. Tengo avería. Comuníquese conmigo.",
"G. Necesito un práctico.",
"H. Tengo un práctico a bordo",
"I. Estoy virando a babor.",
"J. Tengo un incendio y llevo mercancías peligrosas. Manténgase alejado.",
"K. Deseo comunicarme con usted.",
"L. Detenga su barco inmediatamente.",
"M. Mi barco está parado y no se pone en marcha.",
"N. Negativo",
"O. Hombre al agua",
"P. En puerto: Todos los hombres a bordo. El barco se hace a la mar.",
"Q. Mi barco está “sano”. Solicito libre navegación.",
"R. Recibido",
"S. Estoy dando marcha atrás.",
"T. Barcos de pesca: Estoy pescando al arrastre en pareja. Manténgase alejado.",
"U. Se dirige usted hacia un peligro.",
"V. Necesito auxilio.",
"W. Necesito asistencia médica.",
"X. Suspenda sus maniobras y preste atención a mis señales.",
"Y. Estoy maniobrando hacia atrás para fijar el ancla.",
"Z. Necesito un remolcador."] 'Podía haberlo hecho en una linea, pero se ve mejor así. Me ha recordado a las llaves de "C"

Public Sub _new()

End

Public Sub Form_Open()
Dim bandera As String
Dim x As Integer

Me.Center
Me.Title = "Señales marítimas internacionales"
directorio = Application.Path & "/Band/" 'Carpeta donde se encuentran las imágenes
abanderas = Dir(directorio, "*.png").Sort()

For x = 0 To abanderas.Count - 1
    lstvBanderas.Add(abanderas[x], asignificado[x], Picture[directorio &   abanderas[x]]) 'Usamos el nombre del archivo como clave,el significado de la bandera como texto y la imagén
Next


End

Public Sub lstvBanderas_Select()
Dim nombre As String
Dim lugar As Integer

nombre = lstvBanderas.Item.Key
lugar = RInStr(nombre, ".png") - 1 'Antes de que comience la extensión .png
nombre = Left(nombre, lugar) 'Solo nos interesa el nombre sin la extensión.
PicBandera.Picture = lstvBanderas.Item.Picture
lblNomBand.Text = nombre

End

Public Sub ToolButton1_Click()
Me.Close

End

---código---

Aquí podéis bajar el ejemplo.


Y aquí encontrareis mas información.




No hay comentarios:

Publicar un comentario