Imagina que estás creando una aplicación con formularios windows form en visual studio y quieres personalizar la apariencia y el comportamiento de las ventanas. ¿Cómo se hace? La clave está en las saber manejar las propiedades y los eventos de los Windows Forms y de sus controles. Pero, ¿cuáles son exactamente estas propiedades y cómo se utilizan?
En Visual Studio, un Windows Form es una ventana que actúa como la interfaz de usuario de una aplicación de escritorio.
Lo primero que debes saber, es que para crear aplicaciones con windows forms en visual studio, debes saber crear un proyecto.
Como crear un proyecto de tipo aplicación de escritorio en Visual Studio.
Lo primero que debemos hacer esabrir Visual Studio y haz clic en «Crear un nuevo proyecto».

En la barra de búsqueda, escribimos «Form» y seleccionamos la opción «Aplicación de Windows Forms (.NET Framework)». En este pantalla, podemos ver que además de seleccionar el tipo de aplicación que queremos crear, también debemos fijarnos en el tipo de lenguaje que deseamos utilizar para crear nuestra aplicación. En este ejemplo se ha seleccionado C#, aunque también existen otros lenguajes como visual basic (VB.NET).

Asignamos un nombre a tu proyecto, elegimos una ubicación donde guardarlo y la versión de NET Framework que queremos utilizar para nuestro proyecto. Después hacemos clic en «Crear».

Una vez hacemos clic en crear, se nos generará un proyecto con un primer formulario, el cual se llama por defecto «Form1». Cada formulario windows form contiene unas propiedades y una serie de eventos que nos permitirán personalizar y interactuar con la aplicación.

Propiedades de los windows form en visual studio?
Las propiedades de un windows form son configuraciones que permiten modificar diferentes aspectos de la ventana, como su tamaño, color de fondo, título, visibilidad y muchas otras características.
¿Cuáles son las propiedades de los windows forms?
En esta tabla puedes ver las principales propiedades más utilizadas de un windows form y para que sirve cada una de ellas.
| Propiedad | Descripción |
|---|---|
| Name | Nombre del formulario. |
| AcceptButton | Botón que se activa al presionar Enter. |
| BackColor | Color de fondo del formulario. |
| BackgroundImage | Imagen de fondo del formulario. |
| BackgroundImageLayout | Modo de ajuste de la imagen de fondo. |
| CancelButton | Botón que se activa al presionar Esc. |
| Cursor | Tipo de cursor cuando está sobre el formulario. |
| Font | Fuente utilizada en el formulario. |
| ForeColor | Color del texto dentro del formulario. |
| FormBorderStyle | Define el estilo del borde de la ventana. |
| Icon | Ícono del formulario. |
| Locked | Bloquea el formulario para evitar cambios. |
| MaximizeBox | Permite o bloquea la maximización. |
| MinimizeBox | Permite o bloquea la minimización. |
| Size | Define el tamaño del formulario. |
| StartPosition | Posición inicial del formulario al ejecutarse. |
| Text | Texto que aparece en la barra de título. |
| WindowState | Estado de la ventana (normal, minimizada o maximizada). |
Otras propiedades menos utilizadas de los formularios en visual studio.
| Propiedad | Descripción |
|---|---|
| AccessibleDescription | Descripción accesible para personas con discapacidad. |
| AccessibleName | Nombre accesible del formulario. |
| AccessibleRole | Rol accesible del formulario. |
| AllowDrop | Define si un formulario puede aceptar datos arrastrados y soltados. (drag and drop). |
| AutoScaleMode | Ajusta el escalado automático del formulario. |
| AutoScroll | Habilita el desplazamiento automático. |
| AutoSize | Ajusta automáticamente el tamaño del formulario. |
| AutoSizeMode | Define cómo cambia el tamaño del formulario. |
| AutoValidate | Controla la validación automática de los controles. |
| CausesValidation | Indica si el formulario activa la validación de controles. |
| ContextMenuStrip | Menú contextual del formulario. |
| DoubleBuffered | Reduce el parpadeo al dibujar el formulario. |
| Enabled | Habilita o deshabilita el formulario. |
| HelpButton | Muestra un botón de ayuda en la barra de título. |
| ImeMode | Modo de entrada de métodos de edición. |
| IsMdiContainer | Indica si el formulario es un contenedor MDI. |
| KeyPreview | Permite capturar eventos de teclado antes que los controles. |
| Language | Define el idioma del formulario. |
| Localizable | Habilita la localización del formulario. |
| Location | Posición del formulario en la pantalla. |
| MainMenuStrip | Define el menú principal del formulario. |
| MinimumSize | Establece el tamaño mínimo del formulario. |
| Opacity | Define la opacidad del formulario. |
| Padding | Define el relleno interno del formulario. |
| RightToLeft | Define si el texto se muestra de derecha a izquierda. |
| ShowIcon | Muestra o esconde el icono en la barra de título. |
| ShowInTaskbar | Define si el formulario aparece en la barra de tareas. |
| TopMost | Mantiene el formulario siempre en primer plano. |
Como acceder a las propiedades de los windows forms.
Estas propiedades, se pueden cambiar de dos formas diferentes:
Desde la ventana de propiedades.
- Una vez abierto el proyecto en Visual Studio y carga tu proyecto y haz clic sobre el formulario en el diseñador visual.
- En la parte derecha de la pantalla, busca la ventana de propiedades.
- Aquí podrás ver todas las propiedades del formulario y modificar su valor según lo que necesites.

Si estás creando tu primer proyecto con windows forms te habrás fijado que a la hora de configurar el proyecto, además de preguntarnos el nombre de la aplicación, visual studio nos pregunta que nombre queremos darle a la solución.
¿Cuál es la diferencia entre un proyecto y una solución en Visual Studio?
En Visual Studio, al crear una aplicación de escritorio, te encontrarás con dos niveles de organización de archivos: la carpeta de la solución y la carpeta del proyecto. Aquí te explico sus diferencias clave:
Carpeta de la Solución
- Es el nivel más alto de la organización en Visual Studio.
- Puede contener uno o varios proyectos.
- Se genera automáticamente cuando creas una nueva solución y suele tener una extensión .sln (archivo de solución).
- Sirve para organizar proyectos relacionados, por ejemplo, una aplicación con una interfaz gráfica y otra con la lógica de negocio separada.
Carpeta del proyecto
- Está dentro de la carpeta de la solución.
- Contiene todos los archivos necesarios para un único proyecto, como archivos .cs, .config, y recursos gráficos.
- Si creas varios proyectos dentro de una misma solución, cada uno tendrá su propia carpeta de proyecto.
Vamos a ver un esquema de esta estructura.
Ejemplo de la estructura de una aplicación de escritorio en Visua

Los eventos de los windows form en visual studio.
Un evento en un Windows form es una acción o suceso que ocurre en la aplicación, como un clic, la pulsación de una tecla o el movimiento del ratón. Los eventos permiten que el formulario responda a la interacción del usuario o a cambios en la aplicación. Gracias a los eventos de los windows form, podemos interactuar con una aplicación.
Imagínate que estas creando una aplicación con windows form y has en tu proyecto tienes un formulario llamado Form1.
Este formulario, incluso antes de agregar controles, tiene una serie de eventos. De esta manera el usuario puede interactuar con él.
Principales eventos de un windows forms.
| Evento | Descripción |
|---|---|
| Load | Ocurre cuando el formulario se carga en la memoria y está a punto de mostrarse. |
| Shown | Se activa después de que el formulario se ha mostrado por primera vez. |
| Activated | Se dispara cuando el formulario obtiene el foco y se convierte en la ventana activa. |
| Deactivate | Ocurre cuando el formulario pierde el foco porque otro formulario o aplicación ha sido activado. |
| Resize | Se ejecuta cuando el tamaño del formulario cambia. |
| FormClosing | Se dispara antes de que el formulario se cierre, permitiendo cancelar el cierre si es necesario. |
| FormClosed | Ocurre después de que el formulario ha sido cerrado. |
| KeyDown | Se activa cuando el usuario presiona una tecla mientras el formulario tiene el foco. |
| KeyUp | Ocurre cuando el usuario suelta una tecla. |
| MouseMove | Se dispara cuando el usuario mueve el mouse dentro del formulario. |
| MouseDown | Ocurre cuando el usuario presiona un botón del mouse sobre el formulario. |
| MouseUp | Se activa cuando el usuario suelta un botón del mouse sobre el formulario. |
¿Cómo acceder a los eventos de un Windows form?
Visual Studio hace que acceder a los eventos sea muy fácil. Puedes hacerlo principalmente de dos formas diferentes: A través de las propiedades del objeto seleccionado o bien a través de código. En este caso, vamos a ver como acceder a las propiedades a través de las propiedades del objeto en el diseñador.
Desde la ventana de Propiedades
- Abre tu formulario en el diseñador de Visual Studio.
- Haz clic en el icono de «Eventos» (un rayo).
- Doble clic en un evento que quieras y Visual Studio generará automáticamente el código asociado.
Aunque no se haya agregado ningún control, podemos ver algunos de los eventos que contiene un windows form. En nuestro caso buscaremos el evento load.

Si hacemos doble clic en este evento, visual studio generará automáticamente el código para programar lo que queremos que ocurra cuando el formulario se carge en la memoria y este a punto de mostrarse.
Los controles de los windows forms.
Los controles de los windows form son los elementos visuales que mejoran la experiencia con la aplicación. Para agregar un control a un formulario, solo se debe seleccionar y arrastrar al formulario. Además, los controles de los formularios, también tienen sus propios eventos para que el usuario pueda interactuar con ellos. Esto permite dar mayor funcionalidad a la aplicación.
Controles más utilizados de los windows forms.
En la siguiente tabla veremos cuales son los eventos que más se suelen utilizar dentro de un formulario en visual studio.
| Nombre del Control | Descripción | Eventos Principales |
|---|---|---|
| Label | Se usa para mostrar texto estático en el formulario. |
Click: Se activa cuando el usuario hace clic en la etiqueta. MouseEnter: Se dispara cuando el puntero entra en el área del Label. MouseLeave: Se activa cuando el puntero sale del área del Label. |
| TextBox | Permite la entrada de texto por parte del usuario. |
TextChanged: Se activa cuando el texto cambia. KeyPress: Se dispara cuando el usuario presiona una tecla. Enter: Se activa cuando el TextBox recibe el foco. Leave: Se dispara cuando el control pierde el foco. |
| Button | Botón que ejecuta una acción cuando el usuario lo presiona. |
Click: Se activa cuando el usuario hace clic en el botón. MouseEnter: Se dispara cuando el puntero entra en el botón. MouseLeave: Se activa cuando el puntero sale del botón. |
| ListBox | Muestra una lista de elementos que el usuario puede seleccionar. |
SelectedIndexChanged: Se activa cuando se selecciona un elemento. DoubleClick: Se dispara cuando el usuario hace doble clic en un elemento. KeyDown: Ocurre cuando el usuario presiona una tecla mientras está en la lista. |
| ComboBox | Permite seleccionar un elemento de una lista desplegable. |
SelectedIndexChanged: Se activa cuando cambia la selección. DropDown: Se dispara cuando se despliega la lista. TextChanged: Se activa cuando el texto dentro del ComboBox cambia. |
| RadioButton | Permite seleccionar solo una opción dentro de un grupo. |
CheckedChanged: Se activa cuando el estado del botón cambia. Click: Se dispara cuando el usuario hace clic en el RadioButton. |
| CheckBox | Permite activar o desactivar una opción. |
CheckedChanged: Se activa cuando cambia el estado del CheckBox. Click: Se dispara cuando el usuario hace clic en el CheckBox. |
| NumericUpDown | Permite seleccionar un valor numérico mediante flechas o ingreso manual. |
ValueChanged: Se activa cuando cambia el valor. KeyDown: Ocurre cuando el usuario presiona una tecla dentro del control. |
| TreeView | Muestra una estructura jerárquica de nodos. |
AfterSelect: Se activa después de seleccionar un nodo. NodeMouseClick: Ocurre cuando se hace clic en un nodo. BeforeExpand: Se dispara antes de expandir un nodo. |
| DataGridView | Muestra datos en una tabla con filas y columnas. |
CellClick: Se activa cuando el usuario hace clic en una celda. CellValueChanged: Se dispara cuando cambia el valor de una celda. RowEnter: Ocurre cuando el usuario selecciona una fila. |
| DateTimePicker | Permite seleccionar una fecha o una hora. |
ValueChanged: Se activa cuando cambia la fecha o la hora seleccionada. DropDown: Se dispara cuando el usuario despliega el calendario. |
| MonthCalendar | Permite visualizar y seleccionar fechas en un calendario. |
DateChanged: Se activa cuando cambia la fecha seleccionada. DateSelected: Se dispara cuando el usuario selecciona un rango de fechas. |
| Timer | Ejecuta una acción en intervalos de tiempo definidos. |
Tick: Se activa en cada intervalo de tiempo configurado. Start: Inicia la cuenta regresiva del temporizador. Stop: Detiene la ejecución del Timer. |
Como acceder a los eventos de los controles de un windows form en visual studio.
Al igual que en los eventos de los formularios en visual studio, para acceder a los eventos de los controles de un windows form, podemos acceder bien a través del diseñador o bien a través de código.
Imaginemos que en nuestro formulario tenemos un botón (button).

Para acceder a los eventos a través del diseñador.
Podemos hacerlo igual que en el caso de los windows form, pero seleccionando antes el control con el que queremos trabajar.
- Abre tu formulario en el diseñador de Visual Studio.
- Selecciona el control con el que quieres trabajar.
- Haz clic en el icono de «Eventos» (un rayo).
- Doble clic en un evento que quieras para que Visual Studio genere el código asociado.
Estructura de nuestro primer proyecto en Visual Studio.
Una vez generado nuestro proyecto y creado nuestro primer formulario por defecto, lo que nos muestra la ventana principal es lo siguiente.
Por un lado, en el explorador de soluciones, vemos el nombre de la solución y por otro, el proyecto junto a sus archivos.

Además cuando tenemos un objeto seleccionado, podemos ver también sus propiedades. En este caso, tenemos seleccionado el windows form y podemos ver sus propiedades.

En ocasiones, dependiendo de la configuración, podemos no ver estas dos ventanas pero no te preocupes. Esto tiene remedio.
¿Cómo ver el explorador de soluciones y la ventana de propiedades en visual studio?
- Mostrar el explorador de soluciones: Debes acceder al menú Ver y hacer clic en Explorador de soluciones, o bien presiona las teclas Ctrl + Alt + L
- Para mostrar las propiedades desde el mismo menú, haz clic en ventana propiedades o presiona la tecla F4.
Los formularios Windows Form en una aplicación de escritorio en Visual Studio desde la perspectiva de la programación orientada a objetos.
Imagina que estás construyendo una casa. Cada parte de la casa, como las ventanas y las puertas, es un objeto con propiedades y comportamientos específicos.
En la programación orientada a objetos (POO), un formulario en Windows Forms funciona de la misma manera.
¿Qué es un Windows form desde la perspectiva de la POO?
Un formulario en Windows Forms es una clase que representa una ventana en una aplicación de escritorio. Al igual que cualquier otro objeto en POO, un formulario tiene:
- Propiedades: Características que definen su apariencia y comportamiento (como el tamaño o el color de fondo).
- Métodos: Acciones que puede realizar (como abrirse o cerrarse).
- Eventos: Respuestas a interacciones del usuario (como hacer clic en un botón).
Desde la perspectiva de la Programación Orientada a Objetos, un formulario en Windows Forms es una instancia de una clase que hereda funcionalidades de una clase base. Cuando creas una aplicación de escritorio en Visual Studio usando Windows Forms, cada formulario que agregas se basa en una clase ya definida en el framework de .NET. Esta clase base proporciona todas las herramientas necesarias para crear una interfaz gráfica sin necesidad de programarla desde cero.
¿Dónde podemos encontrar el espacio de nombres System.Windows.Forms?
Si desde el menú Ver de visual Studio, hacemos clic en examinador de objetos, seleccionamos Todos los componentes, nos aparecerán todos los espacios de nombres.


Aquí simplemente podemos desplegar los espacios de nombre para ver todos los métodos y propiedades que contienen los los espacios de nombres System.Windows.Forms.
¿Cómo ver los formularios de una aplicación de escritorio en Visual Studio? Diferencias entre vista diseño y vista de código
Cuando trabajamos con formularios en Visual Studio, puedes verlos de dos maneras:
Vista de diseño o diseñador visual a través del archivo .cs
- Muestra una representación gráfica del formulario.
- Puedes agregar y mover controles como botones y etiquetas arrastrándolos con el mouse.
- Se accede haciendo doble clic en el archivo del formulario con extensión .cs y seleccionando la pestaña «Diseño».
Vista de código o editor de código a través del archivo con extensión .designer.cs
En un proyecto de Windows Forms, cada formulario tiene un archivo con extensión .Designer, que contiene el código generado automáticamente para diseñar la interfaz gráfica. Modificar este archivo te permite personalizar los controles y la estructura del formulario sin usar el diseñador visual de Visual Studio.
Ambas vistas están conectadas: lo que modifiques en el diseñador se refleja en el código, y viceversa.
¿Dónde encontrar el archivo .Designer?
Cada formulario en Visual Studio está compuesto por tres archivos:
- Formulario: Contiene la lógica del formulario.
- Formulario.Designer: Contiene el código que define los controles visuales.
- Formulario.resx: Almacena recursos gráficos y de configuración.
Puedes encontrar el archivo «.Designer» en el Explorador de Soluciones expandiendo el nodo del formulario. Además, ten en cuenta que estos tres archivos, tienen su propia extensión dependiendo del lenguaje de programación que estés utilizando para tu proyecto.
Cómo agregar formularios Windows Form a una aplicación de Visual Studio.
Por lo general, las aplicaciones de escritorio en visual studio, pueden contener más de un formulario. En este caso, para agregar windows form a nuestra aplicación podemos hacerlo de varias formas.
- Hacemos clic derecho en el proyecto y seleccionamos agregar formulario windows form, o bien seleccionando nuevo elemento.

- ambién podemos acceder a través del menú proyecto y agregar formulario, o agregar componente o a través de la combinación de teclas Ctrl + Máyus + A.

En ambos casos, nos dirigirá a la siguiente pantalla donde seleccionaremos formulario windows form y le daremos un nombre al mismo.

Una vez agregado, nos aparecera en el explorador de proyectos.

