SlideShare una empresa de Scribd logo
Introducción al desarrollo
de aplicaciones de
escritorio con .NET
Objetivo
Conocer los elementos involucrados en el desarrollo de una
aplicación de escritorio Windows con Visual Studio 2005 y la
plataforma Microsoft .NET, presentando las novedades introducidas al
respecto en la nueva versión 2.0
Temario (1/2)
 Introducción a Windows Forms
 El diseñador de formularios
 El objeto Form
 Controles
 Diseño de Interfaz de Usuario
 Herencia visual
Temario (2/2)
 Configuración
 Diálogos comunes
 Distribución de la aplicación
 Referencias
Temario (1/2)
Introducción a Windows Forms
 ¿ Qué es Windows Forms ?
 ¿ Qué es un formulario ?
 Cómo crear un proyecto de aplicación para Windows
El diseñador de formularios
El objeto Form
Controles
Diseño de Interfaz de Usuario
Herencia visual
¿ Qué es Windows Forms ?
 Windows Forms es un subconjunto de la .NET Framework Class Library
que permite el desarrollo de aplicaciones de escritorio ricas bajo
Microsoft Windows.
 Incluye clases base, interfaces, enumeraciones y controles gráficos
diversos.
¿ Qué es un formulario ?
 Un formulario Windows Forms actúa como interfaz del usuario local de
Windows.
 Los formularios pueden ser ventanas estándar, interfaces de múltiples
documentos (MDI), cuadros de diálogo, etc.
 Los formularios son clases que exponen propiedades, métodos que
definen su comportamiento y eventos que definen la interacción con
el usuario.
Cómo crear un proyecto de
aplicación para Windows
 Utilizando los entornos de desarrollo:
 Visual C# 2005 Express Edition o
 Visual Basic 2005 Express Edition,
se deben seguir estos pasos:
1. En el menú File, seleccionar New Project
2. En la ventana que aparece seleccionar
Windows Application
 No es necesario crear un directorio para los
archivos del proyecto, éstos son creados en
un directorio temporal hasta que se decida
grabarlos.
Temario (1/2)
Introducción a Windows Forms
El diseñador de formularios
El objeto Form
Controles
Diseño de Interfaz de Usuario
Herencia visual
El diseñador de formularios
Al momento de diseñar un formulario, el
diseñador de Visual Studio Express escribe de
forma automática el código que describe a
cada uno de los controles y al propio formulario.
El concepto de Partial class que incorpora .NET
2.0 permite separar el código de una clase en
varios archivos fuentes diferentes.
El diseñador de formularios utiliza esta técnica
para escribir en un archivo aparte todo el
código que él mismo genera.
Esto permite organizar más claramente el
código, manteniendo separada la lógica de la
aplicación en un archivo diferente.
Temario (1/2)
 Introducción a Windows Forms
 El diseñador de formularios
 El objeto Form
 Generalidades
 Eventos, Métodos
 Ciclo de vida
 Trabajando con el Mouse
 Trabajando con el Teclado
 Foco de controles y orden de tabulación
 Message Box
 Controles
 Diseño de Interfaz de Usuario
 Herencia visual
Generalidades (1/2)
El objeto Form es el principal componente de
una aplicación Windows.
Algunas de sus propiedades admiten valores
de alguno de los tipos nativos de .NET
Ejemplo Código C#
miForm.ShowInTaskBar = false;
miForm.Opacity = 0.83;
Generalidades (2/2)
Otras propiedades requieren la
asignación de objetos
Ejemplo en C#
miForm.Size = new Size(100, 100);
miForm.Location = new Location(0, 0);
Métodos
Show()
Visualiza el formulario. Puede especificarse su
formulario Owner.
Si un formulario A es owner (dueño) de otro B, el
formulario B siempre se visualizará sobre el A, sin importar
si otro formulario está activo.
ShowDialog()
Visualiza el formulario como cuadro de diálogo Modal.
Un formulario visualizado de forma modal no permite
que otro formulario perteneciente a la misma aplicación
tome foco. Esta opción es utilizada para mostrar cuadros
de diálogo y focalizar la atención del usuario.
Eventos (1/2)
Manejadores de eventos
Por cada evento soportado por el Form
(o por cualquier otro objeto) es posible
definir varios métodos manejadores.
A su vez, un método manejador puede
controlar eventos disparados por
diferentes objetos.
Eventos (2/2)
 Ejemplos:
Código C#
// Varios manejadores para un evento
this.Click += new EventHandler(MetodoManejador1);
this.Click += new EventHandler(MetodoManejador2);
// Un mismo manejador para diferentes eventos
this.Load += new EventHandler(ManejadorCentralizado);
this.Activated +=new EventHandler(ManejadorCentralizado);
Ciclo de vida del formulario
Muchos de los eventos a los que responde el
objeto Form pertenecen al ciclo de vida del
formulario
Entre estos eventos se encuentran los
siguientes, en orden de ocurrencia:
Load: El formulario está en memoria, pero invisible.
Paint: Se “pinta” el formulario y sus controles.
Activated: El formulario recibe foco.
FormClosing: Permite cancelar el cierre.
FormClosed: El formulario es invisible.
Disposed: El objeto está siendo destruido.
Trabajando con el Mouse
 El mouse puede ser controlado escribiendo
código para alguno de estos eventos:
MouseClick
MouseEnter
MouseMove
 A través de los argumentos que reciben los
manejadores de estos eventos se puede obtener:
La posición del puntero
Qué botón fue presionado
Cantidad de “pasos” que fue girada la rueda
Trabajando con el Teclado
El manejador del evento KeyPress informa
a través del argumento e.KeyChar el
código de la tecla presionada.
Es posible cancelar el comportamiento
por defecto asignando “true” al
argumento e.Handled.
Los argumentos que reciben los
manejadores de los eventos KeyDown y
KeyUp informan del estado de las teclas
Alt, Ctrl y Shift.
El evento HelpRequested es disparado
cuando se presiona la tecla F1.
Foco de controles y
orden de tabulación
El objeto Form expone diferentes propiedades,
métodos y eventos que permiten controlar la
navegabilidad del formulario:
Propiedad CanFocus: Indica si el control
puede tomar foco.
Propiedad Focused: Indica si el control tiene
el foco actualmente.
Método Focus(): “Mueve” el foco al objeto
deseado.
Orden de tabulación (Propiedad TabIndex)
En forma visual, desde el diseñador de
formularios, es posible configurar el orden en
el que el foco se irá moviendo por los
controles.
MessageBox
Para mostrar información o pedir
intervención del usuario, es posible utilizar la
clase MessageBox.
Esta clase contiene métodos estáticos que
permiten mostrar un cuadro de mensaje
para interactuar con el usuario de la
aplicación.
Los parámetros se especifican a través de
enumerados que facilitan la legibilidad del
código, por ejemplo:
 MessageBoxButtons.AbortRetryIgnore
 MessageBoxIcon.Error
 MessageBoxDefaultButton.Button1
Temario (1/2)
Introducción a Windows Forms
El diseñador de formularios
El objeto Form
Controles
 Controles de Windows
 Controles contenedores
 Menú
Diseño de Interfaz de Usuario
Controles Extender Providers
Herencia visual
Controles de Windows (1/3)
Gran parte del éxito de una aplicación Windows
consiste en elegir y manejar adecuadamente los
controles que ofrece .NET.
Entre los controles nativos se encuentran
controles totalmente nuevos y versiones
mejoradas de sus pares de .NET 1.1.
Nuevos controles como el control BindingSource
mejoran notablemente el enlace de datos
provenientes de muy diferentes fuentes de
datos.
Controles de Windows (2/3)
 MaskedEdit
Es un control que permite el uso de máscaras
personalizadas para facilitar la entrada de datos.
 TextBox
Cuadro de texto que, entre otras mejoras tiene la
funcionalidad de auto completar.
 Label
Si el texto ocupa más lugar que el largo del
control, gracias a la nueva propiedad AutoEllipsis
incorporada en .NET 2.0, el exedente se
reemplaza automáticamente con tres puntos (...)
Controles de Windows (3/3)
 DataGridView
 Es una versión mejorada del DataGrid control de NET 1.1 con
funcionalidad de modo “Virtual”. Permite enlazar datos
originados en una Base de Datos a medida que se necesitan.
TreeView
Utilizando la nueva propiedad DrawMode es posible sobreescribir la
manera en que el sistema operativo “dibuja” cada nodo del árbol.
DataGridView
Controles Contenedores
Algunos controles como el propio Form,
Panel o GroupBox heredan de la clase
ContainerControl en lugar de hacerlo
directamente de Control.
Por este motivo, poseen una colección
mediante la que se puede acceder a los
controles que contiene.
Sólo se puede acceder a los controles
de nivel superior, no a todos los controles
contenidos.
Menú (1/2)
El nuevo control MenuStrip provee un sistema
de menú para un formulario.
MenuStrip es contenedor de objetos como
ToolStripMenuItem, ToolStripComboBox,
ToolStripSeparator, ToolStripTextBox.
El control ContextMenuStrip representa un
menú que será mostrado al usuario cuando
presione el botón derecho del mouse.
También puede contener los mismos controles
que MenuStrip.
Las propiedades MergeAction y MergeIndex
del objeto ToolStripItem permiten controlar la
manera en que los menú de dos diferentes
ventanas se “mezclarán”.
Menú (2/2)
 En la imagen se ve una aplicación que utiliza los
controles MenuStrip y ToolStrip. En segundo plano se ve el
diseñador de formularios.
Temario (1/2)
Introducción a Windows Forms
El diseñador de formularios
El objeto Form
Controles
Diseño de Interfaz de Usuario
Snaplines
Document Outline
Paneles de Layout
Anchor y Docking
Controles Extender Providers
Herencia visual
Snaplines
 Son líneas que se dibujan automáticamente en el
diseñador de formularios al momento de posicionar
el control.
 Ayudan a mantener la correcta distancia entre los
controles y entre éstos y su contenedor.
Document Outline
 Mediante esta herramienta es posible ver la jerarquía de controles del
formulario en forma de TreeView, y además editar el nombre de esos
controles.
Layout Panels
 TableLayoutPanel
 Es similar a diseñar una tabla en un formulario HTML.
 Facilita la ubicación de los controles en escenarios de localización.
 Facilita la creación de interfaces redimensionables.
 FlowLayoutPanel
 Los controles contenidos “fluyen” como en el modo por defecto de un
formulario HTML.
Anchor y Docking
Anchor
 Automatiza el redimensionamiento y posicionamiento de los controles
cuando se redimensiona el formulario.
 Los controles pueden anclarse contra cualquier combinación de los cuatro
bordes del formulario.
Docking
 La propiedad Dock (que exponen todos los controles Windows) permite
pegar un control a alguno de los cuatro bordes del formulario.
Temario (1/2)
Introducción a Windows Forms
El diseñador de formularios
El objeto Form
Controles
Diseño de Interfaz de Usuario
Controles Extender Providers
Herencia visual
Controles Extender Providers
Son controles que, una vez colocados en un
formulario, agregan nuevas propiedades a
los otros controles existentes.
 ErrorProvider: Permite asociar un error a un control mostrando un ícono que
parpadea al lado de dicho control.
 HelpProvider: Permite asociar a un control desde una simple cadena de
texto un archivo Help que serán mostrados al presionar F1.
 ToolTip: Es el clásico rectángulo que aparece asociado a un control y que
es mostrado cuando el mouse se detiene sobre él.
Temario (1/2)
Introducción a Windows Forms
El diseñador de formularios
El objeto Form
Controles
Diseño de Interfaz de Usuario
Controles Extender Providers
Herencia visual
Herencia Visual
 Dado que un formulario Windows es como cualquier otra clase .NET,
es posible aplicar herencia.
 Al heredar de un formulario base, además de sus miembros, se
heredan todos los controles que en él se encuentren.
 Permite entre otras cosas:
 Unificar el diseño de las interfaces de usuario.
 Reutilizar funcionalidad de formularios similares.
Temario (2/2)
Configuración
Diálogos comunes
Enlace a datos
Distribución de la aplicación
Referencias
Configuración
Las Propiedades Dinámicas permiten
almacenar preferencias del usuario en
archivos de configuración asociados a la
aplicación.
Estos valores pueden ser leídos y grabados
tanto en diseño como en ejecución.
Por cada valor que se almacena se puede
definir el nombre, tipo de dato y alcance
(usuario o aplicación).
Es posible además enlazar (binding)
propiedades dinámicas a controles del
formulario.
Temario (2/2)
Configuración
Diálogos comunes
Enlace a datos
Distribución de la aplicación
Referencias
Diálogos Comunes
Los cuadros de diálogo comunes permiten
interacción con el usuario para ejecutar
acciones comunes como abrir un archivo,
configurar la impresión, seleccionar un color
del sistema, etc.
Sólo basta configurar algunas propiedades e
invocar su método ShowDialog().
Alguno de los controles que muestran estos
diálogos son:
ColorDialog
PrintDialog
SaveDialog
OpenDialog
Temario (2/2)
Configuración
Diálogos comunes
Enlace a datos
 Colecciones
 Objeto BindingSource
 ADO.NET
Distribución de la aplicación
Referencias
Colecciones
Enlace de un ComboBox a datos
provenientes de un ArrayList:
Código C#
System.Collections.ArrayList Paises =
new System.Collections.ArrayList();
Paises.Add("Argentina");
Paises.Add("Brasil");
Paises.Add("Uruguay");
comboBox1.DataSource = Paises;
Objeto BindingSource
 El objeto BindingSource permite el enlace de
controles a datos provenientes de fuentes de
datos (DataSource) de tres tipos
 DataBase: Crea internamente un dataset.
 WebService: Crea una referencia web a un servicio que
es el que proporciona los datos
 Object: Utiliza una clase de negocios como fuente de
datos creando automáticamente una colección de
elementos de esa clase.
 Usándolo junto a un control DataBindingNavigator
y un DataGridView conforman un formulario de
ABM sin escribir código alguno.
ADO.NET
 Además de utilizar el objeto BindingSource, es posible enlazar datos
utilizando ADO.NET de manera directa.
 Ejemplo en C#
using( SqlConnection cn = new SqlConnection("....") )
{
cn.Open();
SqlDataAdapter da = new SqlDataAdapter("Select *
from Employee", cn);
DataTable dt = new DataTable();
da.Fill(dt);
this.dataGridView1.DataSource = dt;
}
Temario (2/2)
Configuración
Diálogos comunes
Enlace a datos
Distribución de la aplicación
Click Once
Referencias
Distribución de la aplicación
 La distribución de una aplicación Windows involucra
varios pasos de cierta complejidad dependiendo de
sus requerimientos.
 .NET 2.0 incorpora ClickOnce, una tecnología que
permite la distribución de la aplicación, versionado y
rollback, entre otras funciones.
 Es posible:
Decidir donde será instalada físicamente.
Especificar la frecuencia de revisión de
actualizaciones.
Forzar actualizaciones críticas.
Publicar actualizaciones en Servidores Web,
Servidores de archivo (File Servers) o Servidores
FTP.
Temario (2/2)
Configuración
Diálogos comunes
Enlace a datos
Distribución de la aplicación
Referencias
Referencias Adicionales
Windows Forms:
http://windowsforms.net
http://samples.gotdotnet.com/quickstart/winforms/
http://msdn.microsoft.com/library/en-
us/cpref/html/frlrfsystemwindowsforms.asp
http://msdn.microsoft.com/library/spa/default.asp?url=
/library/SPA/vbcon/html/vbconintroductiontowfcforms
.asp
Referencias Adicionales
Smart Client Developer Center
http://msdn.microsoft.com/smartclient/understan
ding/windowsforms/default.aspx
ClickOnce:
http://msdn.microsoft.com/msdnmag/issues/04/05
/ClickOnce/

Más contenido relacionado

PPTX
Ciclo de vida de un Sistema
PPTX
Vistas Arquitectonicas Ingenieria de Software
DOCX
Metodología orientadas a objetos
PPTX
Presentacion diseño de archivos
PPTX
Noción de archivo real y virtual
PPTX
Informe final de Auditoria Informatica
PDF
Tesis Sistema Informático Integrado para la Administración Académica
DOC
Desarrollo de aplicaciones web con casos de uso
Ciclo de vida de un Sistema
Vistas Arquitectonicas Ingenieria de Software
Metodología orientadas a objetos
Presentacion diseño de archivos
Noción de archivo real y virtual
Informe final de Auditoria Informatica
Tesis Sistema Informático Integrado para la Administración Académica
Desarrollo de aplicaciones web con casos de uso

La actualidad más candente (20)

PDF
Casos de uso
PPT
Unidad 4 Mad Modelado Analisis Casos De Uso
DOCX
Requerimientos Funcionales y No Funcionales
PDF
Metodologías de Desarrollo de Software Tradicionales y Emergentes
PPT
Arquitectura 3 Capas
PPTX
Sistema Operativo Distribuido
DOCX
Requisitos funcionales y no funcionales
DOC
Ejemplo plan de desarrollo de software rup
DOCX
Diagrama de actividades inscripcion, evaluacion, Asistencia
PDF
2. Casos de uso y diagramas de casos de uso
PDF
Especificación y resultados de las pruebas de software
DOCX
Metodologia rup
PPT
Ejemplo rup
PPTX
DOC
Trabajo de diseño de sistemas orientados a objetos
PDF
Requerimientos Funcionales y no Funcionales
DOC
DocumentacióN De Un Sistema De InformacióN
PPTX
Técnicas de Evaluación en una Auditoria de Sistemas Computacionales
PPTX
Diagramas de paquetes
DOCX
Cuestionario uml y objetos zuli
Casos de uso
Unidad 4 Mad Modelado Analisis Casos De Uso
Requerimientos Funcionales y No Funcionales
Metodologías de Desarrollo de Software Tradicionales y Emergentes
Arquitectura 3 Capas
Sistema Operativo Distribuido
Requisitos funcionales y no funcionales
Ejemplo plan de desarrollo de software rup
Diagrama de actividades inscripcion, evaluacion, Asistencia
2. Casos de uso y diagramas de casos de uso
Especificación y resultados de las pruebas de software
Metodologia rup
Ejemplo rup
Trabajo de diseño de sistemas orientados a objetos
Requerimientos Funcionales y no Funcionales
DocumentacióN De Un Sistema De InformacióN
Técnicas de Evaluación en una Auditoria de Sistemas Computacionales
Diagramas de paquetes
Cuestionario uml y objetos zuli
Publicidad

Similar a Aplicaciones de escritorio con c# (20)

PPT
Dce2 introduccion win_forms
PPT
Dce2 introduccion win_forms
PPT
Introduccion a Windows Form
PPT
Dce2 Introduccion Win Forms
PDF
Windows.forms.ejercicios
PPTX
VISUAL BASIC
PPTX
visual basic
PPTX
Desarrollas aplicaciones de escritorio:)
PPTX
Visual basic
PPTX
Visual Basic .NET
PPTX
7-Unidad 2: Aplicaciones Windows Forms-2.1 Introducción, conceptos y caracter...
PPT
6. windows forms
PPTX
Crear una aplicación de formularios windows forms
PPTX
7- Unidad 2: Aplicaciones Windows Forms-2.1. Introducción, Conceptos y Caract...
PPTX
aplica los fundamentos de programación web
PPTX
Desarrolla aplicaciones de escritorio con bases de datos
PPTX
Desarrolla aplicaciones de escritorio con bases de datos
PPTX
fundamentos de programacion web
PPTX
desarrolla aplicaciones
PDF
10.1_Semana_10_WindowsForms.pdf.concepos
Dce2 introduccion win_forms
Dce2 introduccion win_forms
Introduccion a Windows Form
Dce2 Introduccion Win Forms
Windows.forms.ejercicios
VISUAL BASIC
visual basic
Desarrollas aplicaciones de escritorio:)
Visual basic
Visual Basic .NET
7-Unidad 2: Aplicaciones Windows Forms-2.1 Introducción, conceptos y caracter...
6. windows forms
Crear una aplicación de formularios windows forms
7- Unidad 2: Aplicaciones Windows Forms-2.1. Introducción, Conceptos y Caract...
aplica los fundamentos de programación web
Desarrolla aplicaciones de escritorio con bases de datos
Desarrolla aplicaciones de escritorio con bases de datos
fundamentos de programacion web
desarrolla aplicaciones
10.1_Semana_10_WindowsForms.pdf.concepos
Publicidad

Último (20)

DOCX
PLAN DE CASTELLANO 2021 actualizado a la normativa
PDF
5°-UNIDAD 5 - 2025.pdf aprendizaje 5tooo
PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
PDF
Aqui No Hay Reglas Hastings-Meyer Ccesa007.pdf
PDF
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
PDF
Introduccion a la Investigacion Cualitativa FLICK Ccesa007.pdf
PDF
LIBRO 2-SALUD Y AMBIENTE-4TO CEBA avanzado.pdf
PPTX
Presentación de la Cetoacidosis diabetica.pptx
PDF
La Formacion Universitaria en Nuevos Escenarios Ccesa007.pdf
PDF
Introducción a la historia de la filosofía
PDF
informe tipos de Informatica perfiles profesionales _pdf
PDF
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
PDF
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE_COM.pdf
DOCX
PLAN DE AREA DE CIENCIAS SOCIALES TODOS LOS GRUPOS
PDF
IPERC...................................
PDF
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
DOCX
Informe_practica pre Final.docxddadssasdddddddddddddddddddddddddddddddddddddddd
PDF
Atencion prenatal. Ginecologia y obsetricia
PDF
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
PDF
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
PLAN DE CASTELLANO 2021 actualizado a la normativa
5°-UNIDAD 5 - 2025.pdf aprendizaje 5tooo
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
Aqui No Hay Reglas Hastings-Meyer Ccesa007.pdf
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
Introduccion a la Investigacion Cualitativa FLICK Ccesa007.pdf
LIBRO 2-SALUD Y AMBIENTE-4TO CEBA avanzado.pdf
Presentación de la Cetoacidosis diabetica.pptx
La Formacion Universitaria en Nuevos Escenarios Ccesa007.pdf
Introducción a la historia de la filosofía
informe tipos de Informatica perfiles profesionales _pdf
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE_COM.pdf
PLAN DE AREA DE CIENCIAS SOCIALES TODOS LOS GRUPOS
IPERC...................................
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
Informe_practica pre Final.docxddadssasdddddddddddddddddddddddddddddddddddddddd
Atencion prenatal. Ginecologia y obsetricia
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf

Aplicaciones de escritorio con c#

  • 1. Introducción al desarrollo de aplicaciones de escritorio con .NET
  • 2. Objetivo Conocer los elementos involucrados en el desarrollo de una aplicación de escritorio Windows con Visual Studio 2005 y la plataforma Microsoft .NET, presentando las novedades introducidas al respecto en la nueva versión 2.0
  • 3. Temario (1/2)  Introducción a Windows Forms  El diseñador de formularios  El objeto Form  Controles  Diseño de Interfaz de Usuario  Herencia visual
  • 4. Temario (2/2)  Configuración  Diálogos comunes  Distribución de la aplicación  Referencias
  • 5. Temario (1/2) Introducción a Windows Forms  ¿ Qué es Windows Forms ?  ¿ Qué es un formulario ?  Cómo crear un proyecto de aplicación para Windows El diseñador de formularios El objeto Form Controles Diseño de Interfaz de Usuario Herencia visual
  • 6. ¿ Qué es Windows Forms ?  Windows Forms es un subconjunto de la .NET Framework Class Library que permite el desarrollo de aplicaciones de escritorio ricas bajo Microsoft Windows.  Incluye clases base, interfaces, enumeraciones y controles gráficos diversos.
  • 7. ¿ Qué es un formulario ?  Un formulario Windows Forms actúa como interfaz del usuario local de Windows.  Los formularios pueden ser ventanas estándar, interfaces de múltiples documentos (MDI), cuadros de diálogo, etc.  Los formularios son clases que exponen propiedades, métodos que definen su comportamiento y eventos que definen la interacción con el usuario.
  • 8. Cómo crear un proyecto de aplicación para Windows  Utilizando los entornos de desarrollo:  Visual C# 2005 Express Edition o  Visual Basic 2005 Express Edition, se deben seguir estos pasos: 1. En el menú File, seleccionar New Project 2. En la ventana que aparece seleccionar Windows Application  No es necesario crear un directorio para los archivos del proyecto, éstos son creados en un directorio temporal hasta que se decida grabarlos.
  • 9. Temario (1/2) Introducción a Windows Forms El diseñador de formularios El objeto Form Controles Diseño de Interfaz de Usuario Herencia visual
  • 10. El diseñador de formularios Al momento de diseñar un formulario, el diseñador de Visual Studio Express escribe de forma automática el código que describe a cada uno de los controles y al propio formulario. El concepto de Partial class que incorpora .NET 2.0 permite separar el código de una clase en varios archivos fuentes diferentes. El diseñador de formularios utiliza esta técnica para escribir en un archivo aparte todo el código que él mismo genera. Esto permite organizar más claramente el código, manteniendo separada la lógica de la aplicación en un archivo diferente.
  • 11. Temario (1/2)  Introducción a Windows Forms  El diseñador de formularios  El objeto Form  Generalidades  Eventos, Métodos  Ciclo de vida  Trabajando con el Mouse  Trabajando con el Teclado  Foco de controles y orden de tabulación  Message Box  Controles  Diseño de Interfaz de Usuario  Herencia visual
  • 12. Generalidades (1/2) El objeto Form es el principal componente de una aplicación Windows. Algunas de sus propiedades admiten valores de alguno de los tipos nativos de .NET Ejemplo Código C# miForm.ShowInTaskBar = false; miForm.Opacity = 0.83;
  • 13. Generalidades (2/2) Otras propiedades requieren la asignación de objetos Ejemplo en C# miForm.Size = new Size(100, 100); miForm.Location = new Location(0, 0);
  • 14. Métodos Show() Visualiza el formulario. Puede especificarse su formulario Owner. Si un formulario A es owner (dueño) de otro B, el formulario B siempre se visualizará sobre el A, sin importar si otro formulario está activo. ShowDialog() Visualiza el formulario como cuadro de diálogo Modal. Un formulario visualizado de forma modal no permite que otro formulario perteneciente a la misma aplicación tome foco. Esta opción es utilizada para mostrar cuadros de diálogo y focalizar la atención del usuario.
  • 15. Eventos (1/2) Manejadores de eventos Por cada evento soportado por el Form (o por cualquier otro objeto) es posible definir varios métodos manejadores. A su vez, un método manejador puede controlar eventos disparados por diferentes objetos.
  • 16. Eventos (2/2)  Ejemplos: Código C# // Varios manejadores para un evento this.Click += new EventHandler(MetodoManejador1); this.Click += new EventHandler(MetodoManejador2); // Un mismo manejador para diferentes eventos this.Load += new EventHandler(ManejadorCentralizado); this.Activated +=new EventHandler(ManejadorCentralizado);
  • 17. Ciclo de vida del formulario Muchos de los eventos a los que responde el objeto Form pertenecen al ciclo de vida del formulario Entre estos eventos se encuentran los siguientes, en orden de ocurrencia: Load: El formulario está en memoria, pero invisible. Paint: Se “pinta” el formulario y sus controles. Activated: El formulario recibe foco. FormClosing: Permite cancelar el cierre. FormClosed: El formulario es invisible. Disposed: El objeto está siendo destruido.
  • 18. Trabajando con el Mouse  El mouse puede ser controlado escribiendo código para alguno de estos eventos: MouseClick MouseEnter MouseMove  A través de los argumentos que reciben los manejadores de estos eventos se puede obtener: La posición del puntero Qué botón fue presionado Cantidad de “pasos” que fue girada la rueda
  • 19. Trabajando con el Teclado El manejador del evento KeyPress informa a través del argumento e.KeyChar el código de la tecla presionada. Es posible cancelar el comportamiento por defecto asignando “true” al argumento e.Handled. Los argumentos que reciben los manejadores de los eventos KeyDown y KeyUp informan del estado de las teclas Alt, Ctrl y Shift. El evento HelpRequested es disparado cuando se presiona la tecla F1.
  • 20. Foco de controles y orden de tabulación El objeto Form expone diferentes propiedades, métodos y eventos que permiten controlar la navegabilidad del formulario: Propiedad CanFocus: Indica si el control puede tomar foco. Propiedad Focused: Indica si el control tiene el foco actualmente. Método Focus(): “Mueve” el foco al objeto deseado. Orden de tabulación (Propiedad TabIndex) En forma visual, desde el diseñador de formularios, es posible configurar el orden en el que el foco se irá moviendo por los controles.
  • 21. MessageBox Para mostrar información o pedir intervención del usuario, es posible utilizar la clase MessageBox. Esta clase contiene métodos estáticos que permiten mostrar un cuadro de mensaje para interactuar con el usuario de la aplicación. Los parámetros se especifican a través de enumerados que facilitan la legibilidad del código, por ejemplo:  MessageBoxButtons.AbortRetryIgnore  MessageBoxIcon.Error  MessageBoxDefaultButton.Button1
  • 22. Temario (1/2) Introducción a Windows Forms El diseñador de formularios El objeto Form Controles  Controles de Windows  Controles contenedores  Menú Diseño de Interfaz de Usuario Controles Extender Providers Herencia visual
  • 23. Controles de Windows (1/3) Gran parte del éxito de una aplicación Windows consiste en elegir y manejar adecuadamente los controles que ofrece .NET. Entre los controles nativos se encuentran controles totalmente nuevos y versiones mejoradas de sus pares de .NET 1.1. Nuevos controles como el control BindingSource mejoran notablemente el enlace de datos provenientes de muy diferentes fuentes de datos.
  • 24. Controles de Windows (2/3)  MaskedEdit Es un control que permite el uso de máscaras personalizadas para facilitar la entrada de datos.  TextBox Cuadro de texto que, entre otras mejoras tiene la funcionalidad de auto completar.  Label Si el texto ocupa más lugar que el largo del control, gracias a la nueva propiedad AutoEllipsis incorporada en .NET 2.0, el exedente se reemplaza automáticamente con tres puntos (...)
  • 25. Controles de Windows (3/3)  DataGridView  Es una versión mejorada del DataGrid control de NET 1.1 con funcionalidad de modo “Virtual”. Permite enlazar datos originados en una Base de Datos a medida que se necesitan. TreeView Utilizando la nueva propiedad DrawMode es posible sobreescribir la manera en que el sistema operativo “dibuja” cada nodo del árbol. DataGridView
  • 26. Controles Contenedores Algunos controles como el propio Form, Panel o GroupBox heredan de la clase ContainerControl en lugar de hacerlo directamente de Control. Por este motivo, poseen una colección mediante la que se puede acceder a los controles que contiene. Sólo se puede acceder a los controles de nivel superior, no a todos los controles contenidos.
  • 27. Menú (1/2) El nuevo control MenuStrip provee un sistema de menú para un formulario. MenuStrip es contenedor de objetos como ToolStripMenuItem, ToolStripComboBox, ToolStripSeparator, ToolStripTextBox. El control ContextMenuStrip representa un menú que será mostrado al usuario cuando presione el botón derecho del mouse. También puede contener los mismos controles que MenuStrip. Las propiedades MergeAction y MergeIndex del objeto ToolStripItem permiten controlar la manera en que los menú de dos diferentes ventanas se “mezclarán”.
  • 28. Menú (2/2)  En la imagen se ve una aplicación que utiliza los controles MenuStrip y ToolStrip. En segundo plano se ve el diseñador de formularios.
  • 29. Temario (1/2) Introducción a Windows Forms El diseñador de formularios El objeto Form Controles Diseño de Interfaz de Usuario Snaplines Document Outline Paneles de Layout Anchor y Docking Controles Extender Providers Herencia visual
  • 30. Snaplines  Son líneas que se dibujan automáticamente en el diseñador de formularios al momento de posicionar el control.  Ayudan a mantener la correcta distancia entre los controles y entre éstos y su contenedor.
  • 31. Document Outline  Mediante esta herramienta es posible ver la jerarquía de controles del formulario en forma de TreeView, y además editar el nombre de esos controles.
  • 32. Layout Panels  TableLayoutPanel  Es similar a diseñar una tabla en un formulario HTML.  Facilita la ubicación de los controles en escenarios de localización.  Facilita la creación de interfaces redimensionables.  FlowLayoutPanel  Los controles contenidos “fluyen” como en el modo por defecto de un formulario HTML.
  • 33. Anchor y Docking Anchor  Automatiza el redimensionamiento y posicionamiento de los controles cuando se redimensiona el formulario.  Los controles pueden anclarse contra cualquier combinación de los cuatro bordes del formulario. Docking  La propiedad Dock (que exponen todos los controles Windows) permite pegar un control a alguno de los cuatro bordes del formulario.
  • 34. Temario (1/2) Introducción a Windows Forms El diseñador de formularios El objeto Form Controles Diseño de Interfaz de Usuario Controles Extender Providers Herencia visual
  • 35. Controles Extender Providers Son controles que, una vez colocados en un formulario, agregan nuevas propiedades a los otros controles existentes.  ErrorProvider: Permite asociar un error a un control mostrando un ícono que parpadea al lado de dicho control.  HelpProvider: Permite asociar a un control desde una simple cadena de texto un archivo Help que serán mostrados al presionar F1.  ToolTip: Es el clásico rectángulo que aparece asociado a un control y que es mostrado cuando el mouse se detiene sobre él.
  • 36. Temario (1/2) Introducción a Windows Forms El diseñador de formularios El objeto Form Controles Diseño de Interfaz de Usuario Controles Extender Providers Herencia visual
  • 37. Herencia Visual  Dado que un formulario Windows es como cualquier otra clase .NET, es posible aplicar herencia.  Al heredar de un formulario base, además de sus miembros, se heredan todos los controles que en él se encuentren.  Permite entre otras cosas:  Unificar el diseño de las interfaces de usuario.  Reutilizar funcionalidad de formularios similares.
  • 38. Temario (2/2) Configuración Diálogos comunes Enlace a datos Distribución de la aplicación Referencias
  • 39. Configuración Las Propiedades Dinámicas permiten almacenar preferencias del usuario en archivos de configuración asociados a la aplicación. Estos valores pueden ser leídos y grabados tanto en diseño como en ejecución. Por cada valor que se almacena se puede definir el nombre, tipo de dato y alcance (usuario o aplicación). Es posible además enlazar (binding) propiedades dinámicas a controles del formulario.
  • 40. Temario (2/2) Configuración Diálogos comunes Enlace a datos Distribución de la aplicación Referencias
  • 41. Diálogos Comunes Los cuadros de diálogo comunes permiten interacción con el usuario para ejecutar acciones comunes como abrir un archivo, configurar la impresión, seleccionar un color del sistema, etc. Sólo basta configurar algunas propiedades e invocar su método ShowDialog(). Alguno de los controles que muestran estos diálogos son: ColorDialog PrintDialog SaveDialog OpenDialog
  • 42. Temario (2/2) Configuración Diálogos comunes Enlace a datos  Colecciones  Objeto BindingSource  ADO.NET Distribución de la aplicación Referencias
  • 43. Colecciones Enlace de un ComboBox a datos provenientes de un ArrayList: Código C# System.Collections.ArrayList Paises = new System.Collections.ArrayList(); Paises.Add("Argentina"); Paises.Add("Brasil"); Paises.Add("Uruguay"); comboBox1.DataSource = Paises;
  • 44. Objeto BindingSource  El objeto BindingSource permite el enlace de controles a datos provenientes de fuentes de datos (DataSource) de tres tipos  DataBase: Crea internamente un dataset.  WebService: Crea una referencia web a un servicio que es el que proporciona los datos  Object: Utiliza una clase de negocios como fuente de datos creando automáticamente una colección de elementos de esa clase.  Usándolo junto a un control DataBindingNavigator y un DataGridView conforman un formulario de ABM sin escribir código alguno.
  • 45. ADO.NET  Además de utilizar el objeto BindingSource, es posible enlazar datos utilizando ADO.NET de manera directa.  Ejemplo en C# using( SqlConnection cn = new SqlConnection("....") ) { cn.Open(); SqlDataAdapter da = new SqlDataAdapter("Select * from Employee", cn); DataTable dt = new DataTable(); da.Fill(dt); this.dataGridView1.DataSource = dt; }
  • 46. Temario (2/2) Configuración Diálogos comunes Enlace a datos Distribución de la aplicación Click Once Referencias
  • 47. Distribución de la aplicación  La distribución de una aplicación Windows involucra varios pasos de cierta complejidad dependiendo de sus requerimientos.  .NET 2.0 incorpora ClickOnce, una tecnología que permite la distribución de la aplicación, versionado y rollback, entre otras funciones.  Es posible: Decidir donde será instalada físicamente. Especificar la frecuencia de revisión de actualizaciones. Forzar actualizaciones críticas. Publicar actualizaciones en Servidores Web, Servidores de archivo (File Servers) o Servidores FTP.
  • 48. Temario (2/2) Configuración Diálogos comunes Enlace a datos Distribución de la aplicación Referencias
  • 50. Referencias Adicionales Smart Client Developer Center http://msdn.microsoft.com/smartclient/understan ding/windowsforms/default.aspx ClickOnce: http://msdn.microsoft.com/msdnmag/issues/04/05 /ClickOnce/