Introducción a las aplicaciones Windows



Documentos relacionados
La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición.

Operación Microsoft Access 97

POWER POINT. Iniciar PowerPoint

Microsoft Access proporciona dos métodos para crear una Base de datos.

Guía de Aprendizaje No. 1

UF0513 Gestión auxiliar de archivo en soporte convencional o informático

Fundamentos CAPÍTULO 1. Contenido

TEMA 20 EXP. WINDOWS PROC. DE TEXTOS (1ª PARTE)

Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes:

Guía N 1: Fundamentos básicos(i)

TEMA 2 WINDOWS XP Lección 4 BLOC DE NOTAS

Práctica 3: Introducción a Word

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

Formularios. Formularios Diapositiva 1

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora

Presentaciones. Con el estudio de esta Unidad pretendemos alcanzar los siguientes objetivos:

WINDOWS. Iniciando Windows. El mouse

2_trabajar con calc I

Módulo I - Word. Iniciar Word Finalizar Word Definición de elementos de pantalla Escribir texto en un documento El cursor...

Introducción a Visual Studio.Net

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

1.- MENU DE CONTROL O MENU VENTANA: permite cerrar la ventana cambiarla de tamaño y pasar a otra ventana

Carlos Castro Grande 1

MANUAL DE USUARIO CMS- PLONE

Módulo 1 Sistema Windows. Explorador de Windows

TEMA 2. CARACTERÍSTICAS DEL LENGUAJE VISUAL BASIC

Tareas básicas en OneNote 2010 Corresponde a: Microsoft Office OneNote 2010

Uso de Visual C++ Pre-Practica No. 3

Vamos a ver las dos formas básicas de arrancar PowerPoint.

Lic. Saidys Jiménez Quiroz Tecnología e Informática Grado 7 CESCOJ 2011

Notas para la instalación de un lector de tarjetas inteligentes.

Capítulo 9. Archivos de sintaxis

Elementos de Microsoft Word

Roberto Quejido Cañamero

CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO

HOOTSUITE: GESTOR DE CUENTAS EN REDES SOCIALES

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

Para crear una lista como la anterior, primero escribe la información, y después selecciona el texto y aplícale el formato de viñetas.

ENTORNO DE DESARROLLO MICROSOFT.NET 2010

1. La nueva interfaz del programa

Centro de Profesorado Luisa Revuelta (Córdoba) TEMA 6 TABLAS Y GRÁFICOS EN IMPRESS

ESTÁNDAR DESEMPEÑO BÁSICO Recopila información, la organiza y la procesa de forma adecuada, utilizando herramientas tecnológicas.

Trabajar con diapositivas

NORMA 34.14(SEPA) 05/11/2013

GENERACIÓN DE ANTICIPOS DE CRÉDITO

El Escritorio. En el escritorio tenemos iconos que permiten abrir el programa correspondiente.

A continuación se describen cuáles son los elementos principales de las tablas, cómo crear una y cómo modificarla.

Cómo creo las bandejas del Registro de Entrada /Salida y de Gestión de Expedientes?

COMO CREAR UNA PÁGINA WEB 2-INTRODUCCIÓN A DREAWEAVER

PLANTILLAS DE DOCUMENTOS EN WORD 2007

Guardar y abrir documentos

GENERACIÓN DE TRANSFERENCIAS

MACROS. Automatizar tareas a través del uso de las macros.

Operación de Microsoft Excel

Para ingresar a la aplicación Microsoft Word 97, los pasos que se deben seguir pueden ser los siguientes:

Finalmente, aprenderá a interceptar y a manejar muchos de los eventos comunes que tienen los componentes y los formularios de Windows Form.

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

UNIDAD I PROCESADOR DE TEXTOS

Centro de Profesorado Luisa Revuelta (Córdoba) TEMA 2 CREAR, GUARDAR, CERRAR, ABRIR y VISUALIZAR PRESENTACIONES

F O R M U L A R I O S FORMULARIOS

Activación de un Escritorio Remoto

Operación de Microsoft Word

INDICE. 1. Introducción El panel Entities view El panel grafico Barra de botones Botones de Behavior...

Para crear formularios se utiliza la barra de herramientas Formulario, que se activa a través del comando Ver barra de herramientas.

APLICACIONES MICROINFORMÁTICA Apuntes de POWERPOINT

Guía para la Automatización de Documentos en. Microsoft Word

Internet Information Server

Tutorial de Introducción a la Informática Tema 0 Windows. Windows. 1. Objetivos

Imprimir códigos de barras

Definiciones. Tema 21_Módulos Menú 1

Si es la primera vez que trabajas con Power Point, lo que debes hacer es localizar el botón de inicio. después haz doble clic sobre el icono

Manual de Microsoft Power Point 2007 Parte 2 Universidad Politécnica de San Luis Potosí

ORGANIZAR LA INFORMACIÓN: EL EXPLORADOR DE WINDOWS

Una plantilla es un documento de Word 2003 con la característica de que el tipo de documento es plantilla de documento (.dot).

Redes de área local: Aplicaciones y servicios WINDOWS

Hi-Spins. Hi-Spins - Novedades v

... Formas alternativas de escribir un texto. Columnas. anfora CAPÍTULO 4

Bases de Datos en Visual FoxPro. Administrador de proyectos

Tema2 Windows XP Lección 1 MENÚ INICIO y BARRA DE TAREAS

MACROS Y FORMULARIOS

MICROSOFT WORD 2007 AVANZADO. Unidad Didáctica Nº 1

COLEGIO DE BACHILLERES ELABORADO POR: ING. IVETT ZARZA HIDALGO Y LIC. CLAUDIA HERNÀNDEZ ALPÍZAR PROFA. DE INFORMATICA Y DE CECAT-INFORMATICA

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

Creado dentro de la línea de sistemas operativos producida por Microsoft Corporation.

1. Cambia el fondo del Escritorio

Comentario sobre el entorno de desarrollo Microsoft Visual Studio 2005 Juan Manuel Lucas

AGREGAR COMPONENTES ADICIONALES DE WINDOWS

Informes. 3. Elija la opción Nuevo (en la parte superior de la ventana) 4. Elija Autoinformes: en tablas y luego la tabla o consulta que se usará.

Manual de Gunaguaro Instalación y Uso

Manual del Usuario de Microsoft Access Introducción - Página 1. I. Introducción. I.1. Base de Datos Relacional

PLANTILLAS EN MICROSOFT WORD

A25. Informática aplicada a la gestión Curso 2005/2006 Word Tema 3. Formato de sección.

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

ELABORACIÓN DE TABLEROS DINÁMICOS DE COMUNICACIÓN CON EL PROGRAMA EDITOR TICO

vbnmqwertyuiopasdfghjklzxcvbnmrty uiopasdfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfghjklzxc

Formas de Pago y Efectos en Facturas de Venta WhitePaper Febrero de 2007

PowerPoint 2010 Introducción a Microsoft Office PowerPoint 2010

ESCUELA SUPERIOR DE INFORMATICA Prácticas de Estadística UNA SESIÓN EN SPSS

Conocer la interfaz de Office 2010

Introducción a Google Calendar Breve guía sobre algunas de sus funcionalidades destacables.

Transcripción:

Introducción a las aplicaciones Windows En la primera parte del libro se ha estudiado las características de C#, pero realmente, se ha hecho una escasa utilización de las clases contenidas en el Framework.NET. Una vez conocidos los conceptos de clase y herencia se puede aprovechar toda la potencia de la programación orientada a objetos y de este lenguaje, para utilizar el conjunto de clases que ofrece la plataforma.net. En este capítulo se hará una breve introducción a la programación de aplicaciones para Windows y se construirán algunos programas muy sencillos para explicar el esqueleto de una aplicación. En primer lugar, se implementa una aplicación utilizando un editor de textos cualquiera con objeto de explicar con detalle el código necesario para construir una aplicación Windows y posteriormente se implementará otra con ayuda de Visual Studio.NET para describir el entorno que proporciona el paquete. Breve descripción del namespace System.Windows.Forms Toda la funcionalidad que se requiere para crear aplicaciones para Windows la proporciona el namespace System.Windows.Forms. El namespace System.Windows.Forms se compone de clases, estructuras, delegates, interfaces y enumeraciones. En los próximos capítulos se irán estudiando muchos de ellos. Para escribir aplicaciones Windows con C# se puede utilizar cualquier editor, por simple que sea. Desde luego, ayudará a comprender mucho mejor el código el hecho de escribir las primeras aplicaciones con el block de notas. En este capítulo se escribirán de esta manera un par de aplicaciones, muy sencillas, que servirán para describir los fundamentos de una aplicación Windows. La segunda opción y realmente la más práctica- es trabajar en el entorno de desarrollo proporcionado por Visual Studio.NET. La utilización de este paquete simplifica la tarea del programador y permite centrarse en lo que de verdad es su misión: escribir el código sin perder mucho tiempo con el diseño gráfico de la aplicación. De modo esquemático el namespace System.Windows.Forms contiene las siguientes clases o tipos: Application Esta clase es el corazón de una aplicación Windows. Utilizando los métodos de esta clase se puede procesar los mensajes de Windows, comenzar y terminar la aplicación, etc... Form Esta clase representa las ventanas o cuadros de diálogo de una aplicación Windows. Button, ListBox, TextBox, PictureBox 1/37

Estas y otras muchas clases proporcionan toda la funcionalidad y flexibilidad de los controles más habituales de Windows. StatusBar, Splitter, ToolBar, ScrollBar, Son clases que corresponden a utilidades de Windows: barras de estado y de desplazamiento, cajas de herramientas, etc. ColorDialog, FileDialog, Son las cajas de diálogo estándar. Menu, MainMenu, MenuItem, ContextMenu Se utiliza para crear menús y menús PopUp ToolTip, Timer, Facilitan la interactividad de las aplicaciones. Los controles, en general, son instancias u objetos de estas clases. Se añaden a un formulario cuando son miembros de la clase a la que pertenece dicho formulario. De manera esquemática, el árbol de herencia de las clases correspondientes a los controles del namespace System.Windows.Forms es el de la figura 14.1: 2/37

Figura 14.1: Jerarquía de clases del namespace System.Windows.Forms Las clases situadas en el exterior del cuadro no pertenecen a este namespace. Se han representado con un tono un poco más claro las clases abstractas. Todas las clases de este namespace derivan de la clase object. Es muy importante conocer lo que aporta cada una de las clases base de las que hereda una determinada clase que se vaya a utilizar porque hereda todas sus propiedades, métodos y eventos. A continuación se explica brevemente la funcionalidad de las principales clases base. 3/37

La clase Object es clase base de todas las clases. Sobre ella se ha hablado anteriormente, por lo que no se insistirá en este punto. La clase MarshalByRefObject define el comportamiento para trabajar con un tipo por referencia y no por valor. En general, todos los controles son de tipo referencia y heredan de esta clase. El tipo Component proporciona la funcionalidad para que un control interactúe con su contenedor, como por ejemplo, un botón con el formulario que lo contiene. Además, proporciona la implementación del método Dispose(), que es el método que se ejecuta cuando, por ejemplo, se cierra un formulario. En el código del formulario de una aplicación, una clase que heredada de la clase Form puede sobrescribir este método de la siguiente manera: public override void Dispose() base.dispose(); //código Observe que las tres clases citadas pertenecen a namespace diferentes. La clase Control Esta es una clase muy importante porque establece gran parte del comportamiento común de muchas clases que derivan de ella: una gran mayoría de los controles de Windows la tienen como clase base. Permite configurar gráficamente la posición y el tamaño de un control, capturar las entradas desde el teclado y ratón, etc. Más adelante se estudiará con profundidad esta clase. A continuación se describen dos clases base que derivan de la clase Control, llamadas ScrollableControl y ContainerControl. Son muy importantes porque, aunque la gran mayoría de los controles no heredan de ellas, sí lo hace la clase Form ver figura 14.1-, que es la clase de la que heredan todos los formularios. La clase ScrollableControl Se utiliza para definir un pequeño número de miembros que permiten a un control soportar barras de desplazamiento horizontales y verticales. Los controles que derivan de esta clase tienen dos propiedades relacionadas con ella que son AutoScroll y ScroollSize. Por ejemplo, imagine que en el constructor de un formulario, se incluyen las dos siguientes líneas: this.autoscroll = true; this.autoscrollminsize = new System.Drawing.Size(250,250); La primera de ellas define si se establecen barras de desplazamiento o no en el control el formulario en este caso-. La segunda, establece el tamaño mínimo del control a partir del cual las barras se harán visibles. En el ejemplo anterior, si el ancho o la altura del 4/37

formulario son menores de 250 píxeles, se visualizará una barra de desplazamiento horizontal o vertical respectivamente. En la figura 14.1 se puede observar que no son muchos los controles que derivan de esta clase. Pero entre ellos, además de Form, está la clase Panel y la clase TabPage. Por esta razón, si se desea que un PictureBox tenga barras de desplazamiento por ejemplo, para visualizar una imagen más grande que el propio control- se puede trabajar con un panel y en él, introducir un PictureBox. Más adelante se hace un ejemplo de esto, al describir el control Panel. Si se pretende personificar las barras de desplazamiento o tener cierto control sobre ellas, es mejor trabajar con los controles HScrollBar o VScrollBar, porque la clase ScrollableControl no define muchos métodos o propiedades para ella. La clase ContainerControl Esta clase deriva de la clase ScrollableControl y además define propiedades y métodos para relacionar un control contenedor de controles con los controles que contiene. Permite también manejar el foco de la aplicación. En la práctica, es muy corriente cuando un formulario contiene varios controles y se desea utilizar la tecla Tabulador para pasar el foco de uno a otro. Con muy poca programación y muchas veces se puede hacer visualmente, en tiempo de diseño - se puede forzar al foco para que después de un determinado evento siga un determinado orden en los controles que lo van recibiendo. En el siguiente capítulo, se utiliza esta funcionalidad en un ejemplo. Todos los controles heredan las propiedades TabStop y TabIndex. Se utilizan para definir el orden relativo para adquirir el foco respecto al control que los contiene un formulario, un panel, etc- y se utilizan en combinación con las propiedades anteriores. Las propiedades y métodos más importantes de esta clase son: ActiveControl: define el control activo. ParentForm: es una referencia al formulario que contiene al control. ProcessTabKey(): este método permite ir o no adelante a través de los controles del contenedor de los controles. La primera aplicación Windows con el block de notas Se puede escribir directamente el código necesario para implementar una aplicación básica para Windows en cualquier procesador de textos pero esta no es la mejor opción si el programa se complica un poco. Sin embargo, se anima al lector a trabajar de este modo al principio porque le ayudará a comprender mejor el código que Visual Studio escribe por defecto. En este caso, se trabajará con el block de Notas, pero puede hacerse con el editor que se prefiera. 5/37

Los pasos necesarios para crear una aplicación mínima para Windows son los siguientes: a) Derivar una clase de la clase System.Windows.Forms.Form. La clase Form proporciona toda la funcionalidad de un formulario. b) En el método Main() de la clase que se está definiendo, invocar al método estático Run() de la clase Application pasándole como argumento una instancia u objeto de la clase. Por ejemplo: ejecute el block de notas y escriba el siguiente código y guárdelo en un fichero denominado Form1.cs. Puede llamarse de cualquier forma, aunque la extensión debe ser cs. //Aplicación Form1. Fichero Form1.cs using System.Windows.Forms; public class Form1 : Form static void Main() Application.Run(new Form1()); A continuación, se ha de compilar el fichero desde el SDK. Para ello, se puede cargar Visual Studio como se indica en la figura 14.2: Figura 14.2. Cargando Visual Studio.NET en modo comando. Para compilar, se ha de escribir la línea (figura 14.3) csc Form1.cs La línea anterior crea un fichero Form1.exe en el mismo directorio. 6/37

Para ejecutarlo se ha de escribir (figura 14.3): Form1 Figura 14.3: Modo de compilar y ejecutar una aplicación en modo comando. Al ejecutarlo, se despliega la siguiente ventana (figura 14.4): Figura 14.4: La aplicación Form1.exe Observe que esta ventana tiene los tres botones en la parte superior derecha y el icono de la esquina superior izquierda, cada uno de ellos con toda su funcionalidad. Además, se puede cambiar el formulario de tamaño. Para comprender este primer programa, es preciso hacer algunas puntualizaciones y, sobre todo, profundizar un poco en la clase Application. A continuación, se describe brevemente cada línea del código del programa anterior. En primer lugar se importa el namespace System.Windows.Forms: using System.Windows.Forms; 7/37

Este primer paso es necesario porque las clases Application y Form pertenecen a este namespace. Se crea una clase de nombre Form1, que deriva de la clase Form. Por esta razón, Form1 tendrá todos los miembros que posee la clase Form, y podrá hacer uso de ellos. Un objeto de la clase Form representa una ventana estándar de Windows que será visualizada cuando se ejecute la aplicación. public class Form1 : Form Con la directiva using se le indica al compilador que importe el namespace. De esta manera, para hacer referencia a la clase, basta con invocarla con su nombre Form- y no con el nombre completo -System.Windows.Forms.Form-. La clase Form1 tiene un único método además de todos los que hereda de la clase Form-, que es estático y llamado Main(). Este es el punto de entrada de la aplicación. Cuando se ejecuta el fichero Form1.exe, de hecho, se está llamando al método Main() de ese fichero para comenzar en ese lugar la Aplicación. static void Main() El método Main() sólo tiene una única línea de código. Application.Run(new Form1()); En realidad, la línea anterior podría haberse desdoblado en dos: Form1 unformulario = new Form1(); Application.Run(unFormulario); En la primera se crea un objeto de la clase Form1 y en la segunda se le pasa ese objeto al método Run(). Lo primero que hace el programa es llamar al constructor de la clase Form1 para crear un objeto o instancia de la clase Form1. Este objeto se le pasa al método Run() de la clase Application. Run() es un método estático de la clase Application. Si a este método se le pasa un objeto que deriva de la clase Form comienza una aplicación estándar de Windows, visualizándose la ventana correspondiente al objeto pasado como argumento. Run() proporciona una serie de métodos y propiedades para manejar una aplicación como comenzar, terminar, parar y procesar los mensajes de Windows y para obtener información sobre la aplicación. Esta clase no puede ser heredada. En general, el método Run inicializa el bucle de mensajes de la aplicación en el hilo actual y, opcionalmente, hace visible un formulario. Invocando los métodos Exit o ExitThread se puede parar el bucle o el hilo. Puede llamar a DoEvents para procesar los mensajes mientras el programa está en un bucle. 8/37

Los métodos más importantes de clase Application son: DoEvents() Procesa todos los mensajes de Windows que están en la cola. Se puede pensar en este método como un rápido camino para simular el comportamiento de un hilo. Exit() Termina la aplicación. ExitThread() Termina el hilo. Run() Sobrecargado. Comienza la aplicación. La estructura de estos métodos son las siguientes: public static void DoEvents(); public static void Exit(); public static void ExitThread(); public static void Run(); public static void Run(System.Windows.Forms.ApplicationContext contexto); public static void Run(System.Windows.Forms.Form formularioprincipal); En el ejemplo anterior, se podría invocar cualquiera de los miembros de la clase Form1. Por ejemplo, se puede escribir un título en la cabecera de la ventana con la propiedad Text- o asignar un color de fondo al formulario con la propiedad BackColor. En este último caso, se debe importar el namespace System.Drawing en donde se sitúa la clase Color. El código correspondiente es: //Aplicacion Form2 //Fichero Form2.cs using System.Windows.Forms; using System.Drawing; public class Form2 : Form static void Main() Form2 unformulario = new Form2(); unformulario.text = "Primer Formulario"; unformulario.backcolor=color.blue; Application.Run(unFormulario ); Guarde este fichero con el nombre Form2.cs, compílelo y ejecútelo. La salida de este programa es (figura 14.5): 9/37

Figura 14.5. Salida del programa Form2.exe Cuando un formulario tiene como miembro un control, dicho control se visualizará con el formulario. Se pueden añadir los controles que se deseen a un formulario. A continuación se realiza una sencilla aplicación con un botón que cuando se pulsa cambia el texto de su etiqueta y el título del formulario. Para ello, debe añadirse a la clase Form3 un botón, como se indica a continuación: //Aplicacion Form3 //Fichero Form3.cs using System; using System.Windows.Forms; public class Form3 : Form Button b; public Form3() b = new Button(); b.text="aceptar"; this.text= Tercera aplicación ; b.click += new EventHandler(b_Click); this.controls.add(b); private void b_click(object sender, EventArgs e) this.text = "Acabo de pulsar el botón"; b.text = Pulsado ; static void Main() Form3 unformulario = new Form3(); Application.Run(unFormulario ); Si se guarda el fichero con el nombre Form3.cs y se ejecuta la programa, la salida será (Figura 14.6): 10/37

Figura 14.6. Salida del programa Form3.exe. A continuación, se realizan algunas consideraciones sobre algunas líneas del programa anterior: using System; Se importa el namespace System para poder tratar los eventos Button b; Se declara un botón en el formulario como miembro de la clase Form3. b = new Button(); Se crea un objeto de tipo Button en el constructor de Form3 b.click += new EventHandler(b_Click); Se registra el evento Click del botón b para que sea manejado y tratado por el método b_click. this.controls.add(b); Se añade el botón b a la colección Controls de controles del formulario (this). private void b_click(object sender, EventArgs e) this.text = "Acabo de pulsar el botón"; b.text = Pulsado ; Este es el método que se ejecuta cuando se pulsa el botón. En primer lugar se modifica el texto del formulario (this) y posteriormente el del botón (b). 11/37

Antes de realizar un programa parecido con el apoyo de Visual Studio, es interesante hacer una introducción a los formularios. Los Formularios Como se ha venido diciendo Windows Forms es la nueva plataforma de desarrollo de aplicaciones para Microsoft Windows. Está basada en el Framework.NET, ofreciendo un conjunto de clases claro, orientado a objetos y extensible. Además, Windows Forms puede actuar como interfaz de usuario local en soluciones distribuídas multi-capa. Un formulario es un objeto o instancia de la clase System.Windows.Forms.Form. Es una ventana, generalmente rectangular, que puede ser utilizada para presentar información al usuario y aceptar una entrada del mismo. Los formularios pueden ser ventanas normales, ventanas padre o hijo MDI, cuadros de diálogo, o simples superficies para rutinas gráficas. Los formularios son objetos que exponen propiedades que controlan su apariencia, métodos que definen su comportamiento y eventos que proporcionan la posibilidad de interacción con el usuario. La labor del desarrollador es establecer el valor de las propiedades cuando sea necesario y escribir el código de respuesta a los eventos. Es sencillo crear y diseñar un formulario. Para ello, si se utiliza Visual Studio.NET, se puede añadir controles a su superficie arrastrándolos desde la caja de herramientas al formulario. Una vez añadidos, cada uno de los controles pasa a ser miembro de esta nueva clase que se está creando. Visual Studio va escribiendo el código correspondiente de manera automática cada vez que el programador añade de manera visual un control al formulario. Cuando se diseña un formulario se está creando una clase derivada de la clase Form y cuando se muestra en pantalla en tiempo de ejecución, se está creando una instancia de esa clase. Aunque la creación, diseño, etc... de un formulario puede hacerse directamente desde cualquier editor, el modo más cómodo, rápido y sencillo es utilizar el entorno Visual Studio. En la figura 14.7 se representa la jerarquía de herencia de la clase Form: 12/37

Object MarshalByRefObject Component Control ScrollableControl ContainerControl Form MiFormulario Figura 14.7. Arbol de herencia de la clase Form. Como se ha visto anteriormente, es posible utilizar un Form como la clase de inicio de una aplicación. Para ello ha de contener el método Main con el código para crear y mostrar el Form. Cuando se cierre el Form de inicio, la aplicación será también cerrada. Cualquier formulario puede invocar cualquiera de los métodos y propiedades de las clases de las que hereda. Por eso es fundamental conocer los detalles que implementan cada clase base. A través de la clase Form se pueden crear también ventanas MDI (Múltiple Document Interface). En concreto, la propiedad IsMDIContainer puesta a true hace que un Form sea de tipo MDI padre y la propiedad MDIParent conteniendo una referencia a una ventana MDI hace que un Form sea de tipo MDI hijo. En el siguiente capítulo se tratará con profundidad la clase Form junto con las demás clases del namespace System.Windows.Forms 13/37

Diseño de una aplicación básica con Visual Studio.NET A continuación se va a diseñar una aplicación sencilla por medio de Visual Studio.NET. La aplicación Hola Mundo, mostrará el texto Hola Mundo en el título del formulario de la aplicación. Los pasos a realizar son: Crear un proyecto Aplicación para Windows : Para ello, en el menú, seleccione Archivo/Nuevo/Proyecto...(Figura 14.8) Figura 14.8. Creando un nuevo proyecto. En la pantalla que Visual Studio propone, escoja las siguientes opciones ( figura 14.9): Tipo de Proyectos: Proyectos de Visual C# Plantillas: Aplicación para Windows. Nombre: HolaMundo (este será el nombre del proyecto). Ubicación: La que se desee. Piense que el entorno creará un directorio en la parte inferior de la ventana se describe el path- con el nombre del proyecto donde se ubicarán todos los ficheros necesarios para la aplicación. Pulse el botón Aceptar. 14/37

Figura 14.9. Ventana para describir un nuevo proyecto. Se crea una aplicación que por defecto muestra un formulario vacío. Pulse con el botón derecho sobre él y seleccione Ver código, como se indica en la figura 14.10. Figura 14.10. Ventana de diseño del formulario. 15/37

Aparece de manera automática la ventana donde se almacena el código correspondiente a esta aplicación y que tiene de nombre Form1.cs. Pulsando sobre las pestañas de la parte superior se puede intercambiar entre la ventana anterior ( Form1.cs [Diseño]) y la ventana de código Form1.cs. El código será parecido al siguiente: using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; namespace HolaMundo public class Form1 : System.Windows.Forms.Form private System.ComponentModel.Container components = null; public Form1() InitializeComponent(); protected override void Dispose( bool disposing ) if( disposing ) if (components!= null) components.dispose(); base.dispose( disposing ); #region Windows Form Designer generated code private void InitializeComponent() this.components=new Container(); this.size = new System.Drawing.Size(300,300); this.text = "Form1"; #endregion [STAThread] static void Main() Application.Run(new Form1()); Téngase en cuenta que aquí se han eliminado las líneas de comentarios. Es posible que no puedan verse algunas de estas líneas. Puede ser que estén comprimidas. Fíjese que en la ventana de código, en la parte izquierda aparece una línea gris vertical con unos cuadros muy pequeños (figura 14.11). Algunos de ellos tienen un 16/37

signo + y otros con un signo -. El signo + significa que esas líneas de código están comprimidas para poder ver mejor el código. Sin embargo, si el cursor del ratón permanece unos instantes encima de una de ellas, aparece un cuadro con el código que está oculto, como se indica en la figura 14.11. Para descomprimir el código, se ha de pulsar sobre el signo +. Figura 14.11. Ventana de código del formulario Form1. La propiedad Text de la clase Form determina el título que se mostrará en la barra de título del formulario. Bien directamente sobre el código se ha señalado en negrita en el código anterior-, o bien mediante la ventana de propiedades del formulario (figura 14.12) se puede cambiar esta propiedad. En el primer caso, sólo tiene que cambiar el texto de la línea en negrita por la línea this.text = "HolaMundo"; Es posible que cuando se pulsa sobre una propiedad aparezca una pequeña descripción de ella en la parte inferior de la ventana de propiedades. Si no se puede ver, pulse con el botón derecho del ratón en la barra de herramientas de la ventana de propiedades donde se indica en la figura 14.12 y escoja la opción Descripción. 17/37

Figura 14.12: Ventana de propiedades Antes de compilar es recomendable guardar todos los ficheros de su aplicación: Archivo/Guardar todo. Para compilar la aplicación seleccione en el menú Generar/Generar. Si se hubiera producido algún error, el entorno se lo hará saber en la ventana Resultados que aparece en la parte inferior. En caso contrario, aparecerán los mensajes de error con una pequeña descripción. Haciendo doble click sobre cada error, el cursor se sitúa sobre la línea donde está el error en el código. En caso de que la compilación haya sido satisfactoria, aparecerá en dicha pantalla el aviso: -------------------- Listo ---------------------- Generar: 1 correctos, 0 incorrectos, 0 omitidos Para ejecutar el programa: Depurar/Iniciar o pulse F5 o bien pulse sobre el icono de color verde representado por un pequeño triángulo. El resultado que se obtiene es el de la figura 14.13. 18/37

figura 14.13. Resultado de la ejecución del programa HolaMundo. El entorno Es importante conocer con detalle el entorno visual de programación que proporciona Visual Studio.NET. El entorno de desarrollo integrado (IDE) permite diseñar el interfaz gráfico de manera visual. El programador sólo tiene que arrastrar los controles que desee hasta su lugar de destino en un formulario. En ese momento, el entorno añade el código correspondiente a ese control en la ventana de código. El IDE facilita mucho las cosas al programador porque proporciona una ventana de propiedades que corresponde al control que esté seleccionado en cada momento. Basta con ir asignando distintos valores a las propiedades de un control para que sin escribir ningún código, el entorno lo escriba por defecto. La ventana de propiedades ayudará mucho en la edición de los métodos que manipularán los eventos. El editor de código es inteligente en el sentido de que sugiere métodos o parámetros o nombres de controles conforme se escribe. Esta característica es de gran ayuda ya que permite detectar con facilidad los errores que comete el programador al escribir su código. Cuando se arranca Visual Studio.NET por primera vez aparece esta pantalla (figura 14.14). 19/37

Figura 14.14: Pantalla inicial de Visual Studio.NET Para aprovechar la potencia que ofrece el entorno, es necesario tener conexión a Internet. Sin embargo, la opción Mi Perfil, proporciona la posibilidad de definir a grandes rasgos el entorno de trabajo. El hecho de elegir algunas de estas opciones acelera de modo considerable algunas funciones del entorno, como puede ser la ayuda. Sin embargo, no es necesario definir ningún perfil para poder trabajar con el programa. El entorno es realmente flexible y las posibilidades para el programador a la hora de configurarlo son muchas. Por ello, es importante que se conozca cuáles son las posibilidades que tiene y cómo se puede personalizar. 20/37

Figura 14.15: Entorno de trabajo de Visual Studio.NET En la figura 14.15 se representa el entorno de trabajo en donde se pueden distinguir varias zonas: a) Ventana de diseño: aquí aparecen varias ventanas que se pueden localizar por medio de sus correspondientes pestañas: la página de inicio, la de diseño y la de código. Inicialmente esta última no aparece pero basta con pulsar con el botón derecho sobre la ventana de diseño y escoger Ver código. En la ventana de código, aparece una pequeña etiqueta de ayuda cuando se deja el cursor inmóvil sobre un determinado método. b) Cuadro de herramientas, donde están situados los controles más comunes. Para añadir cualquiera de ellos al formulario hay que seleccionarlo y arrastrarlo hasta él. Si no está disponible esta ventana, sitúe el ratón sobre el rectángulo de texto cuadro de herramientas situado en el borde izquierdo de la pantalla o bien sobre el icono situado en la parte superior derecha de la barra de herramientas de Visual Studio, o en el menú seleccione Ver/Ventana de herramientas o pulse Control+ALT+X. c) Ventana de propiedades. Esta ventana visualiza las propiedades del objeto que esté seleccionado. Pueden cambiarse las propiedades y el programa modifica el código para que corresponda a lo que se ha introducido en esta ventana. Esto también sucede de modo inverso: si se cambia una determinada propiedad en la ventana de código, la modificación aparecerá en esta ventana de propiedades. Sin embargo, es mejor realizar los cambios desde la ventana de propiedades. Para verla, pulse F4 o en el menú elija Ver/Ventana de propiedades o pulse sobre el icono correspondiente de la parte superior derecha en la barra de 21/37

herramientas de Visual Studio. En la ventana de propiedades los dos primeros iconos de la parte superior izquierda permiten presentar la información de esta ventana por categorías o por orden alfabético. Los dos siguientes permiten que esta ventana visualice las propiedades o los eventos del control que está seleccionado. d) Una herramienta de incalculable valor es el Examinador de objetos que nos permite, de un vistazo, estudiar los distintos métodos y propiedades de cada clase o tipo (Figura 14.16). Para verlo, seleccione en el menú Ver/OtrasVentanas/Examinador de objetos o pulse Control+ALT+J. Observe que en la parte inferior se escribe la estructura completa del método o propiedad elegida. e) Se aconseja al lector que utilice la ayuda dinámica. Para ello, elija en el menú: Ayuda/Ayuda dinámica. Se puede observar que cuando se escribe código, esta ventana sugiere distintas posibilidades de ayuda. Figura 14.16. El examinador de objetos f) Otra estupenda y utilísima herramienta que proporciona Visual Studio es un Visualizador de clases llamado WinCV, cuyo ejecutable se encuentra en el directorio Microsoft.NET \ FrameworkSDK \ Bin. Tiene el aspecto de la figura 14.17. Este visualizador informa de la ubicación de la clase tanto del namespace como del Assembly- y de su definición. Es muy sencillo recorrer sus métodos, propiedades, etc. : 22/37

Figura 14.17. Visualizador de clases WinCV. Además, el explorador de soluciones y la ventana de vistas de clase ayudan mucho en la construcción de proyectos. Si se pulsa con el botón secundario sobre el nombre del proyecto en el explorador de soluciones (figura 14.18) es posible añadir un nuevo formulario o clase al proyecto, etc. Se puede modificar el nombre del fichero.cs bien desde la ventana de propiedades o bien pulsando con el botón derecho, cambiando el nombre del fichero. Si se hace lo mismo sobre el nombre de un formulario en la ventana de vista de clases se puede añadir una propiedad, método, campo o indexador a la clase (figura 14.19). 23/37

Figura 14.18. Menú contextual del explorador de soluciones 24/37

Figura 14.19. Menú contextual de la vista de clases. El entorno proporciona otra herramienta muy útil cuando se está trabajando en la ventana de código de un proyecto de cualquier clase. Siempre que se guarde algo en el portapapeles, ese texto queda almacenado en la barra de herramientas. Cuando se necesite ese texto únicamente deberá arrastrarse el texto como si fuera un controlhasta la ventana de código y se pegará en la ventana (figura 14.20). Figura 14.20. Utilidad del cuadro de herramientas para almacener líneas de código. Visual Studio incluye otras herramientas y opciones que ayudan a administrar un proyecto y las diferentes ventanas del entorno. El IDE admite dos modos de interfaz distintos: MDI (Interfaz de documentos múltiples) y Organización por fichas. Pueden cambiarse los modos utilizando el panel General de las opciones de Entorno en el cuadro de diálogo Opciones: Herramientas/Opciones: Configuración. 25/37