Custom Controls en Compact Framework – personalizando un Listview

Como la mayoría de los desarrolladores el sentido del diseño lo tuve aparcado durante algún tiempo, pero a medida que te involucras en los desarrollos, y sobre todo cuando estas cerca del cliente de das cuenta que una buena funcionalidad no lo es todo, el cliente/usuario final, no tiene porque comprender la complejidad de un desarrollo y posiblemente no sepa valorarla, en cambio una interfaz de usuario atractiva cambia las cosas, algunas de las principales novedades respecto a tecnología móvil en estos últimos tiempos ha ido principalmente en esa dirección, creando nuevos medios de interacción con el usuario, como pueden ser los acelerometros, o interfaces de usuario atractivas como el Touch flow de htc… pero eso lo estoy dejando para un post posterior.


Este fin de semana rastreando por la msdn e recopilado unos cuantos métodos para crear un control Listview personalizado para Compact Framework.


Curiosamente todas las funcionalidades que vamos a utilizar para la creación de este control YA están contenidas en el mismo de forma nativa, pero por algún motivo que aún no he descubierto, estas propiedades no están accesibles en el control desde código manejado, por lo que únicamente tendremos que enviar los mensajes necesarios para activar las funcionalidades que deseemos y obtener un resultado como el de la imagen… (insisto… no soy diseñador jeje)


 


 


Ejemplo ListViewEx 

 


Para poder crear nuestro propio control listView crearemos un control personalizado que herede del control ListView y a continuación declararemos la funciones que harán las llamadas a nativo, para esto tan solo necesitamos la invocación a SendMessage (Manejado , Nativo)


Una vez agregada la llamada declararemos las propiedades que extenderán nuestro control Gradient, GridLines, BackgroundImage y DoubleBuffering éstas funciones hacen relación con las constantes LVS_EX_GRADIENT, LVS_EX_GRIDLINES, LVM_SETBKIMAGE y LVS_EX_DOUBLEBUFFER respectivamente. Si queréis ver todas las posibilidades visitar este enlace.


Como no soy muy dado a andarme por las ramas aquí os dejo un ejemplo con el código fuente del control y la aplicación de ejemplo, lo único destacar lo siguiente, he buscado los ejemplos para mostrar como utilizar la funcionalidad bien mediante p/invoke o bien mediante MessageWindow.SendMessage desde el espacio de nombres Microsoft.WindowsCE.Forms.


MobileNug.Controles.ListviewEx.zip


Un saludo a todos y espero que os sea útil, por su puesto si lo ampliáis seria fantástico que lo compartáis. Esto mismo se puede hacer con otros controles. Así que adelante.


José Antonio Gallego

Mobile .NET Users Group

9 comentarios en “Custom Controls en Compact Framework – personalizando un Listview”

  1. Que tal amigo muy interesante post, pero creo que hay un problema con el link al ejemplo si pudieras revisarlo, gracias por tu aporte.
    Ccs.Vnzla

  2. @Daniel, el codigo fuente completo esta en mobilenug.com… si te da algún tipo de error postealo en el foro de Compact Framework, de todos modos hay un hilo sobre el ListView en ese foro que creo que lo arreglara. El problema es por la referencia a Microsoft.Windowsce.Forms.

  3. Hola de nuevo yo, despues de un tiempo ya vi cual es el problema, pense que tambien podria añadir el control en un Windows Mobile Standar, pero aparentemente ahi esta la falla… yo lo checo

    Gracais

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *