El Control ListView

18
El control ListView Permite listar la información en una amplia variedad de formatos. Si se tiene en cuenta el control de cuadro de lista de imágenes como un simple control de cuadro de lista que añade una serie de imágenes, se puede pensar en el ListView como un cuadro de lista de imágenes con un par de series de imágenes. Se utiliza el control ListView cuando se necesita para mostrar una colección de elementos que constan de una etiqueta y un icono. Este control le permite presentar un conjunto de información en una de cuatro maneras: Large icon - Los elementos aparecen en forma de iconos, cada uno con una etiqueta debajo de ella. El usuario puede arrastrar los iconos dentro de la vista. Pequeño icono - Los artículos aparecen como iconos pequeños, cada uno con la etiqueta hacia la

Transcript of El Control ListView

El control ListView

Permite listar la información en una amplia variedad de formatos. Si se tiene en cuenta el control de cuadro de lista de imágenes como un simple control de cuadro de lista que añade una serie de imágenes, se puede pensar en el ListView como un cuadro de lista de imágenes con un par de series de imágenes. Se utiliza el control ListView cuando se necesita para mostrar una colección de elementos que constan de una etiqueta y un icono. Este control le permite presentar un conjunto de información en una de cuatro maneras:

Large icon - Los elementos aparecen en forma de iconos, cada uno con una etiqueta debajo de ella. El usuario puede arrastrar los iconos dentro de la vista.

Pequeño icono - Los artículos aparecen como iconos pequeños, cada uno con la etiqueta hacia la derecha. El usuario también puede arrastrar estos iconos dentro de la vista.

Lista - Los artículos aparecen como iconos pequeños, cada uno con la etiqueta hacia la derecha, en una columna y presentación ordenada.

Informe - Los elementos aparecen en una lista de varias columnas, con la columna más a la izquierda que muestra el icono y la etiqueta. Puede

definir tantas columnas adicionales como sea necesario y especificar los datos correspondientes a aparecer en cada columna.

- Para utilizar la vista del informe de este control, se debe especificar al menos una columna. Esto sólo puede hacerse a través de una función PowerScript, AddColumn (). De lo contrario, nada va a mostrar.

Propiedades ListView

Al abrir la hoja de propiedades de un control ListView se presentan una variedad de páginas de fichas que le permiten personalizar el control.

En la pestaña General, puede especificar las siguientes propiedades:

AutoArrange (Boolean) - Automáticamente coloca los iconos en grande / pequeño vista de iconos.

ButtonHeader (Boolean) - El encabezado en la vista de informe aparece como botones en lugar de sólo etiquetas.

DeleteItems (booleanas) - Permite al usuario borrar los elementos de la lista mediante la tecla Suprimir.

EditLabels (Boolean) - Permite al usuario modificar las etiquetas de los elementos.

ExtendedSelect (Boolean) - Permite al usuario seleccionar varios elementos de la lista.

FixedLocations (Boolean) - Detiene el usuario de arrastrar grandes iconos pequeños / a nuevas posiciones.

LabelWrap (Boolean) - Especifica si el texto del elemento es la palabra envuelta o verlo como una sola línea.

Desplazamiento (Boolean) - Especifica si el control se pueden desplazar.

ShowHeader (Boolean) - Especifica si el encabezado debe aparecer en la vista del informe.

SortType (grSortType) - Especifica el orden de clasificación de los elementos de la lista. Si SortType es UserDefinedSort!, Se activa el evento Sort.

Ver (ListViewView) - Cambia el tipo de visualización de los cuatro estilos.

Además de especificar la forma en que desea que el ListView va aparecer y comportarse, puede especificar los datos e imágenes usadas para crear el aspecto del control. Hay varias páginas con pestañas que le ayudan a hacer esto: Gran Imagen, Imagen pequeña, estatales y elementos. Los tres primeros ayudan a especificar las imágenes (iconos) que se utilizan para los distintos puntos de vista en el que el ListView se puede mostrar. Las imágenes generalmente se establecen en el pintor y se asignan a los elementos en tiempo de ejecución, aunque también se pueden asignar en tiempo de diseño si la información del artículo es estática. En cada una de las páginas de ficha imagen, puede especificar las imágenes que se utilizarán, el color de la máscara de las imágenes, así como su altura y anchura.

- Las imágenes del estado se utilizan en el control para indicar que una acción ha sido o está a punto de llevarse a cabo sobre el tema. Aparecerá el cuadro de estado en la esquina inferior izquierda del icono principal. Por ejemplo, el elemento seleccionado se puede tener una idea del estado asociada con el que aparecerá a la izquierda de la imagen del artículo e indicar que el elemento actual será parte de una deleción grupo.

El control ListView también utiliza imágenes de superposición, que son las imágenes que aparecen en la parte superior de la imagen del producto y se utilizan para transmitir información adicional sobre el estado del elemento. Imágenes de superposición se discuten más en la siguiente sección.

Funciones ListView

Ahora que ha examinado las propiedades que están disponibles para su uso en el desarrollo de un control ListView, vamos a explorar las funciones asociadas y cómo interactúan con las propiedades.

Antes de hacer eso, el tipo de datos ListViewItem necesita ser introducido. Esta estructura se utiliza para mantener la información sobre cada elemento del control ListView. Tiene las siguientes propiedades:

CutHighLighted (Boolean) - El elemento se resalta y es el destino de una operación de corte.

Datos (Cualquiera) - El valor de los datos que desea asociar con el elemento.

DropHighLighted (Boolean) - El elemento se resalta y es el destino de un arrastrar y soltar.

HasFocus (Boolean) - El elemento tiene el foco. Itemx (entero) - X del punto de coordenadas en el control ListView. ItemY (entero) - Y del punto de coordenadas en el control ListView. Label (String) - La etiqueta de texto del artículo. OverlayPictureIndex (entero) - El número de índice de la imagen en la

lista de imágenes de superposición. PictureIndex (entero) - El índice dentro de la lista de imágenes del control

que se utilizará como icono del elemento. Seleccionado (Boolean) - El artículo ha sido seleccionado. StatePictureIndex (entero) - El índice en la lista de imágenes de estado del

control.

Debido a la estructura de la ListView puede ser algo compleja, el tipo de datos de ListViewItem ayuda a simplificar el proceso. En lugar de crear las llamadas a funciones complejas con numerosos argumentos opcionales, el tipo de datos ListViewItem permite especificar la información que necesita, que luego se puede insertar en el control ListView. Estas son algunas de las funciones-ListView específica:

AddItem ( lviItem ) - Añade un elemento de tipo ListViewItem al control ListView. Devuelve el índice al que se añadió el artículo.

AddItem ( szLabel , nPictureIndex ) - Esta forma de la función sólo se utiliza para establecer el nombre, su imagen para el elemento. Para especificar más información, utilice el formato anterior. Esta función también devuelve el índice en el que se añadió el artículo.

Organizar () - Organiza los iconos en filas y es eficaz en gran icono y sólo pequeños puntos de vista de iconos.

DeleteItem ( nIndex ) - Elimina el elemento en el índice especificado. Esta función no hace que los otros elementos para cambiar el índice.

DeleteItems () - Elimina todos los elementos de un control ListView. EditLabel ( nIndex ) - Coloca el elemento especificado en el modo de

edición. El control ListView también tiene una propiedad booleana (EditLabel) que permite a todos los elementos que se pueden editar. Al establecer esta propiedad en false, puede utilizar la función EditLabel () para aislar ciertas etiquetas para editar o para la edición en puntos controlados.

FindItem( nIndex , Dirección , bFocused , bSelected , bCutHighlighted , bDrophighlighted ) - Esta función busca el siguiente elemento que coincide con los criterios especificados con los cuatro parámetros booleanos. Puede especificar la dirección de la búsqueda en relación con el índice mediante el establecimiento de Dirección a uno de los siguientes:!! DirectionAll, DirectionUp, DirectionDown, DirecciónIzquierda o DirecciónDerecha!. Los criterios de búsqueda son las siguientes: ¿El elemento tiene el foco ( bFocused ), es el elemento seleccionado ( bSelected ), es el tema del destino de una operación de corte (bCutHighLighted ), y es el punto blanco de una drag-and-drop operación ( bDropHighlighted ). Al igual que otras funciones de búsqueda PowerScript, éste comienza en el índice especificado más 1, por lo que empezar desde el principio, el índice debe ser 0.

FindItem ( nIndex , szSearchLabel , bPartial , bWrap ) - Se usa para buscar el siguiente elemento que tiene la misma etiqueta

que szSearchLabel . bPartial permite la búsqueda a realizar una coincidencia parcial, y bWrap hace que el índice de vuelta al primer punto después la llamada de función. nIndex es el índice después de lo cual debe comenzar la búsqueda (recuerde poner a 0 para incluir el primer elemento de la búsqueda). La función devuelve el índice del elemento si se encuentra uno, y -1 si se produce un error.

GetItem ( nIndex , nColumn , szValue ) - Esta función se utiliza cuando el control ListView se establece en el estilo de la vista Informe. nColumn representa el índice de las columnas del informe y, junto con nIndex, proporciona una referencia cruzada en el control para extraer el valor en szValue .

GetItem ( nIndex , lviItem ) - Esta función recupera un objeto ListViewItem completa en lviItem desde el índice especificado en el control.

InsertItem ( nIndex , lviItem ) - Le permite especificar una estructura ListViewItem completa para ser insertado en el índice especificado.

InsertItem ( nIndex , szLabel , nPictureIndex ) - Esto le permite simplemente especifica un nombre, su imagen para el elemento que desea insertar en el índice especificado.

SetItem ( nIndex , nColumn , szValue ) -. Esta función se utiliza cuando el control ListView se establece en el estilo de la vista Informe nColumn representa el índice de las columnas del informe, y junto con nIndexproporciona una referencia cruzada en el control para ajustar el valor a szValue .

SetItem ( nIndex , lviItem ) - Ajusta el elemento en el índice de los valores de una estructura ListViewItem.

Sort ( SortType ) - Este ordena los elementos del control ListView utilizando un valor enumerado de tipo grSortType: ascendente, descendente, Celebridad, o UserDefinedSort! ¡¡¡.

Sort ( SortType , nColumn ) - Cuando el control ListView está en modo de informe, esta función le permite ordenar en una columna específica.

AddLargePicture ( szPicture ), AddSmallPicture ( szPicture ) y AddStatePicture ( szPicture ) - Estas funciones se suman la imagen especificada en la lista de imágenes correspondiente.

DeleteLargePicture ( nIndex ), DeleteSmallPicture ( nIndex ) y DeleteStatePicture ( nIndex ) - Estas funciones borrar la imagen que se especifica en la lista de imagen correspondiente.

DeleteLargePictures (), DeleteSmallPictures (), y DeleteStatePictures () - Estas funciones borran todas las imágenes de la lista de imágenes correspondiente.

SetOverLayPicture ( nOverlayIndex , nImageIndex ) - Esta función se utiliza para asignar una imagen superpuesta a un índice de lista de imágenes grandes o pequeñas. En lugar de mantener una lista de imágenes adicional, las superposiciones se asignan a la lista de imágenes principal del control.

AddColumn ( szLabel , alineación , nWidth ) - Esto añade una nueva columna con la etiqueta especificada, alineación y ancho.

DeleteColumn ( nIndex ) - Esto borra la columna correspondiente al índice especificado.

DeleteColumns () - Esto borra todas las columnas. GetColumn ( nIndex , szLabel , alineación , nWidth ) - Esto extrae

información sobre la columna en el índice especificado. InsertColumn ( nIndex , szLabel , alineación , nWidth ) - Se inserta una

nueva columna en el índice solicitado, con la etiqueta, la alineación y el ancho especificado.

SetColumn ( nIndex , szLabel , alineación , nWidth ) - Esta función ajusta los valores de etiqueta, alineación y ancho de la columna especificada. Las columnas muestran sólo en el estilo de la vista Informe para el control.

TotalColumns () - Devuelve el número de columnas en el control. GetOrigin ( nX , nY ) - Esta función se utiliza para encontrar la

coordenadas X e Y de la esquina superior izquierda del elemento ListView. Los parámetros nX y nY se utilizan para recibir las coordenadas.

SelectedIndex () - Devuelve el índice del elemento seleccionado en el control ListView. Si más de un elemento está seleccionado, la función devuelve el índice del primer elemento. De lo contrario, devuelve -1 en caso de un error o cuando no hay elementos seleccionados.

La función SelectedIndex () sólo se diseñó para los controles que permiten selecciones individuales, y usted debe escribir su propio bucle de revisar individualmente la propiedad estatal de cada elemento.

TotalItems () - Esta función devuelve el número total de elementos en el control.

TotalSelected () - Esta función devuelve el número total de elementos seleccionados en el control.

Llenar un control ListView

Sobre la base de todas las propiedades y funciones tanto del control ListView y la estructura ListViewItem, la siguiente pregunta es, ¿cómo se ensamblan todas estas piezas en un control utilizable? Aunque a primera vista esto puede parecer complejo, es un proceso bastante sencillo. El siguiente código del evento Constructor muestra cómo podría llenar un control ListView de un almacén de datos:

ListViewItem llvi_custint li_numrows, ilds_cust almacén de datosSetPointer (HourGlass!)lds_cust = CREAR almacén de datos

/ / Borrar la vista de lista de cualquier artículo antesthis.DeleteItems ()

/ / Establecer las columnas de la vista de informethis.AddColumn ("Compañía", Izquierda!, 700)this.AddColumn ("Contacto", Izquierda!, 500)this.AddColumn ("Teléfono", Izquierda!, 400)

/ / Recuperar los clienteslds_cust.dataobject = "d_customer"lds_cust.SetTransObject (SQLCA)li_numrows = lds_cust.Retrieve ()

/ / Si hay filas recuperadas, ciclo a través de todas las filas

Si li_numrows> 0 Then / / Llenar la vista de lista Para i = 1 a li_numrows llvi_cust.label = lds_cust.object.company_name [i] + "~ t" + & lds_cust.object.contact [i] + "~ t" + & String (lds_cust.object.phone [i], "(@ @ @) @ @ @ - @ @ @ @") llvi_cust.data = lds_cust.object.id [i] llvi_cust.PictureIndex = 1 THIS.Additem (llvi_cust) PróximoEnd If

Destruye lds_cust

Lo primero que se hace en este código es que el control ListView suprimidos los artículos anteriores utilizando la función () DeleteItems. Si desea dar al usuario la posibilidad de mostrar el control ListView utilizando los cuatro puntos de vista diferentes, tiene que especificar cómo aparecerá el control cuando en la vista Informe. Los primeros tres puntos de vista (iconos grandes, iconos pequeños, y Lista) todos utilizan el texto suministrado por la propiedad Label y las imágenes especificadas para los distintos iconos.

La función AddColumn () se utiliza para definir cada una de las columnas que aparecerán en el control ListView. En este código, se crean tres columnas que muestra el nombre de la empresa, nombre de contacto y número de teléfono. Se especifica cada columna como alineado a la izquierda, y el último argumento indica el tamaño de cada columna. Las columnas deben ser definidas antes de poder usar la vista Informe del ListView.

Después de recuperar los datos en el almacén de datos, es necesario dar la vuelta a través de todas las filas recuperadas, ya que cada uno será un nuevo elemento en el control ListView. Para agregar un elemento en el control ListView, es necesario definir una variable de tipo ListViewItem y asignar valores a sus propiedades.

La primera propiedad es la etiqueta, que es el texto que se muestra en el control ListView para cada elemento. En este caso, la propiedad Label de llvi_cust se rellena con una cadena delimitado por tabuladores que contiene el nombre de la empresa, nombre de contacto y número de teléfono. En Large Icon, Icon Pequeño y ListView, el nombre de la empresa es la única información que se mostrará. El resto de la información se utiliza cuando el control ListView muestra se especifican en la vista Informe.

El orden de los valores colocados en la propiedad Label debe coincidir con el orden que ha definido las columnas usando la función () AddColumns.

La propiedad de datos se utiliza para almacenar la información de fondo que no se muestra al usuario, pero se puede utilizar en el código. En este ejemplo, el ID de cliente se almacenan de modo que pueda ser utilizado como un elemento clave en cualquier otro recuperaciones de datos que pueda necesitar para llevar a cabo. La propiedad PictureIndex se utiliza para indicar los grandes y pequeños iconos que se utilizan para los iconos (extraídos de los iconos especificados en el pintor de ventana). Después de todas las propiedades se han establecido para el ListViewItem, es necesario insertar la variable ListViewItem en el control ListView. Esto se hace utilizando la función AddItem (), pasándole la estructura ListViewItem llvi_cust.

A partir de este punto, se puede realizar cualquier otra acción que usted desee, ya sea para utilizar el ListView como una lista de selección o como un medio para editar datos. Si desea cambiar la vista del ListView, todo lo que necesita hacer es especificar uno de los tipos de datos enumerados para la propiedad View del control, como

this.View = ListViewReport!

Eventos ListView

Además de las funciones y propiedades antes mencionadas, es posible que tenga que utilizar uno de los muchos eventos específicos del control ListView:

BeginDrag - Se activa cuando el usuario utiliza el botón izquierdo del ratón y empieza a arrastrar. El mango del ListViewItem el usuario está tratando de arrastrar está disponible como un argumento de evento.

BeginLabelEdit - Se activa cuando el usuario empieza a editar una etiqueta del elemento. La edición se puede prevenir mediante la devolución de un valor de 1 a partir de este evento. El índice del elemento que se encuentra disponible como un argumento.

BeginRightDrag - Se activa cuando el usuario utiliza el botón derecho del ratón y comienza a arrastrar. El mango del ListViewItem el usuario está tratando de arrastrar está disponible como un argumento de evento.

ColumnClick - Se activa cuando el usuario hace clic en una columna. La columna se pasa como un parámetro.

DeleteAllItems - activa cuando se eliminan todos los elementos de la lista. DeleteItem - Se activa cuando se elimina un elemento por el usuario

utilizando una función PowerScript. EndLabelEdit - Se activa cuando el usuario ha terminado de editar una

etiqueta. Puede devolver 1 para descartar el cambio. El índice del elemento y la nueva etiqueta están disponibles como parámetros.

InsertItem - Se activa cuando se añade un elemento. El nuevo índice es disponible como un parámetro.

ItemChanged - Se activa cuando algo en el tema ha cambiado. Estos son los parámetros disponibles para determinar el cambio:

Índice - El elemento que está cambiando FocusChange - El estado del foco que está cambiando HasFocus - El nuevo estado del foco SelectionChange - La selección del elemento que está cambiando Seleccionado - El nuevo estado de la selección

OtherChange - En otro cambio que afecta al artículo ItemChanging - Se activa cuando algo en el elemento está en el proceso

de cambio. Puede devolver 1 para evitar el cambio. Los mismos parámetros que el evento ItemChanged están disponibles.

RightClicked - Se activa cuando el control es clic derecho. RightDoubleClicked - Se activa cuando el control se hace doble-clic

derecho. Ordenar - Se activa cuando la función Sort () se llama utilizando un

argumento de UserDefinedSort!. Para definir su propio criterio de ordenación de los elementos, es necesario establecer la propiedad SortType a UserDefinedSort! y luego devolver el siguiente valor de retorno para los dos parámetros:

-1 - Índice1 es menos de Index2 0 - Index1 es igual a Index2 1 - Índice1 es mayor que Index2