Mostrando entradas con la etiqueta winforms. Mostrar todas las entradas
Mostrando entradas con la etiqueta winforms. Mostrar todas las entradas

lunes, 30 de enero de 2012

Agregar controles a formularios de forma dinámica (por código o en tiempo de ejecución) en .net con C#

El editor de Visual Studio nos permite tener un gran control granular de la interfaz que tendrá nuestra aplicación winforms en cuanto al manejo de controles se refiere, sin embargo es muy conveniente saber cómo podemos agregar nuestros propios controles al formulario en tiempo de ejecución (en forma dinámica o mediante código).

Probablemente no lo consideren necesario, pero es algo realmente útil por ejemplo si quieres crear una lista de imágenes en miniatura que genera las miniaturas a partir de las imágenes que contenga un folder, en cuyo caso es muy dificil controlar la cantidad de PictureBox que tendrá tu formulario a menos que se generen dinámicamente en tiempo de ejecución.

Nuestro ejemplo será precisamente ese, un formulario que genere las miniaturas de las imágenes que se encuentran en un folder determinado.

Primeramente creamos nuestro proyecto de tipo "Windows Forms Application".



El siguiente paso es personalizar nuestro formulario. En este ejemplo se agregó:
Controles iniciales.
TextBox: para conocer el folder del cual se extraerán las imágenes, se le llamo txtBxFolder
Button: para crear el cuadro de diálogo que nos permite seleccionar un folder, se le llamo txtFolder
Button: para ejecutar la acción de obtener las imágenes, se le llamó btnObtenerImg.

Para poder desplegar las imágenes necesitamos controles de tipo PictureBox y los colocaremos sobre un control del tipo FlowLayoutPanel. La razón es para evitarnos el problema de ir colocando los controles uno tras otro y que su posicionamiento cambie de acuerdo al tamaño de nuestra ventana. Se debe aclarar que generalemte los controles que agregamos dinámicamente deben de tener las propiedades del lugar donde se colocaran dichos controles.

Agregamos el control del tipo FlowLayoutPanel y lo llamaremos PanelImgs, el formulario resultante queda así:


A continuación crearemos el cuadro de diálogo que nos permitirá elegir un folder dentro de nuestro sistema de archivos, para eso debemos controlar el evento clic de nuestro botón btnSelectFolder y agregamos el siguiente código:

martes, 17 de enero de 2012

Manejo de Formularios MDI con C# y Visual Studio 2010 Express

Antes de iniciar debemos aclarar que existen dos tipos de Formularios:
SDI (Single Document Interface)
MDI (Multiple Document Interface)

Los Formularios MDI son aquellos que permiten contener otros formularios dentro de ellos.

Para crear una aplicación de tipo MDI primeramente tenemos que crear nuestro proyecto (Aplicación de Windows).
En el formulario principal debemos establecer la propiedad IsMdiContainer a True.

Formulario Principal


Posteriormente debemos Crear el formulario base que será la plantilla que tendrán nuestros formularios child. En nuestro caso hemos tratado de simular un editor de texto bastante simple pero con soporte MDI.

Agregamos un nuevo formulario a nuestro proyecto.

Agregamos un primer panel en la parte inferior que podrá contener botones si así lo deseamos, para hacer eso establecemos la propiedad Dock del panel en Bottom.


Después agregamos un segundo panel que contendrá nuestro cuadro de texto y establecemos la propiedad Dock en Fill.



Agregamos nuestro textbox y lo renombramos a txtBoxContent y establecemos su propiedad Dock en Fill.





Agregamos un botón al panel de la parte inferior que sera la simulación de un botón que servirá para guardar nuestro documento. Con esto tendremos nuestro formulario base.

Formulario Base


Ahora crearemos un menú para tener una administración muy sencilla de las ventanas child (en el formulario Principal). Observemos que la opción "Lista ->"  no tiene subelementos ya que los crearemos en tiempo de ejecución

.