viernes, 14 de septiembre de 2012

Crear Custom Control Panel mediante un User Control.

Que tal, ya después de un largo tiempo sin agregar entradas a mi modesto blog, quiero dar una pequeña aportación, pero que espero este llena de posibilidades para todos.

Bien pues ¿que tal tener nuestro propio Control Panel? ¿Porqué? o ¿Para que?, las respuestas las hay de todas, en mi caso en la consultora para la que “laburro”, tenemos un conjunto de controles de usuario a los que se les han agregado algunas funciones de dibujo que permiten simular que cada control esta dentro de un panel con bordes redondeados [ese código esta pendiente para otra entrada], bueno pues hay casos en los que necesitamos tener varios controles agrupados en un solo Panelote, así que creamos un User Control que no tiene más que las funciones de dibujo, y así conseguimos nuestro Panel con bordes redondeados para agrupar otros controles, pero nada!! que es solo un farol pues en realidad no agrupa nada. ¿Porqué?, bueno pues porque si bien en cierto que los UC implementan IContainer tambien en cierto que solo funcionan de esta forma en modo de diseño. Pero bueno después de este largo preámbulo verán que la forma de crear su control contenedor es tan fácil que raya en lo ridículo.

1. Crear un proyecto de Librería de Controles
2. Por defecto nos agrega un control de usuario denominado UserControl1, renombrarlo como mejor nos parezca.
3. Agregamos los siguientes Namespace, pues necesitaremos un atributo para nuestra clase que se encuentra en ellos: 

System.ComponentModel 
System.ComponentModel.Design
4. Marcamos nuestra clase con el atributo:
<Designer ("System.Windows.Forms.Design.ParentControlDesigner, System.Design", GetType(IDesigner))>
Esto proveerá la magia para que nuestro UC pueda comportarse como un control del tipo ParentControl o contenedor.
Nuestra Clase debería quedarnos más o menos así:
image
Bien ha sido todo por hoy, como siempre espero que les sea de utilidad.
Happy Coding... Karloz Arba