Proyectos Visuales en Csharp

download Proyectos Visuales en Csharp

of 22

  • date post

    19-Jun-2015
  • Category

    Documents

  • view

    2.014
  • download

    2

Embed Size (px)

Transcript of Proyectos Visuales en Csharp

TRABAJO CON PROYECTOS VISUALES EN C#Un proyecto visual en C# se crea como una Windows Application, de la siguiente manera:

Como normas fundamentales de planificacin de un proyecto, vemos unos cuantos detalles a la hora de generar un proyecto de este tipo (y de otros): ? ? Siempre hay que poner la solucin en un sitio conocido y adecuado, no en el sitio por defecto que propone el entorno. No hay que dejar los nombres por defecto, tales como Solution1, Application1, etc. Cuando tengamos varios proyectos no habr manera de identificarlos con las carpetas ni con sus nombres, y todos parecern iguales. No es buena idea meter en la misma carpeta la solution y el project. Hay que generar una carpeta independiente para el proyecto, dentro de la carpeta de la solucin. Lo ms normal es que una solution tenga varios proyectos, y que uno de ellos comparta el sitio con ella, sea cual sea, no es lo ms indicado. En general, cuando se dan de alta elementos de un proyecto o una solution mediante los asistentes, hay que poner nombres a todo, porque si no, luego cuesta mucho ms el cambiarlos una vez que se han generado.

?

?

Una vez generada la solution y el proyecto, tendremos una pantalla como la siguiente:

Lo primero que hemos de hacer es dar un nombre adecuado al formulario. No es bueno que los formularios de un proyecto se llamen Form1, Form2, etc. Hemos de cambiar su nombre (propiedad (name), tal como se ve en la pantalla anterior). Hemos de cambiar el nombre del fichero donde se va a guardar. En este caso, el formulario se va a llamar Principal, y su fichero ser Principal.cs Hay que cambiar un pequeo detalle en el cdigo:

Hay que cambiar el new Form1() por un new Principal, ya que hemos cambiado el nombre al formulario. Es importante hacer estas tareas al principio, antes de todo lo dems, porque si no, luego tendremos un montn de funciones con nombre que hacen referencia a Form1, y ser mucho ms complicado.

Ahora estamos en disposicin de ver como funciona nuestro proyecto. Ejecutndolo, aparecer un programa totalmente vaco:

Para cambiar la vista de edicin entre el diseo del formulario y el cdigo, en la ventana de la solucion tenemos los siguientes botones:

Vista de diseo del formulario Vista de cdigo

Propiedades del formularioHay un conjunto de propiedades que se pueden establecer durante el diseo del mismo, es decir, sin escribir cdigo: Las propiedades del intuitivas, en general. formulario son bastante

La que se usan ms normalmente son las siguientes: Name FormBorderStyle GridSize Icon MaximizeBox MinimizeBox Size StartPosition Text WindowState

Name Es el nombre del formulario. Todo formulario tiene que tener un nombre decente, no Form1, o Form2, hay que cambiarlo siempre.

FormBorderStyle Es el estilo del borde del formulario. Los valores ms usados son: - Sizeable: El usuario puede cambiar el tamao del formulario durante la ejecucin del programa. - FixedDialog: El tamao del formulario en ejecucin es fijo, no se puede modificar. En general, no se debe dejar como sizeable un formulario que no resizee su interior convenientemente al cambiar de tamao, da muy mala imagen y sensacin de dejadez y poca profesionalidad. GridSize Es el tamao de separacin entre los puntitos que aparecen en tiempo de diseo y que valen para colocar alineados los componentes dentro del formulario. Normalmente, un valor de 4x4 es mucho ms adecuado que el de 8x8 que aparece por defecto. Icon Es el icono del formulario (dibujito superior izquierdo). En un proyecto solo ha de tener icono el formulario principal, o bien los formularios MDIChild si es un proyecto MDI. En el resto de formularios hay que quitar el icono, queda muy feo un formulario de interaccin con el usuario con un dibujo por defecto que no vale para nada. MaximizeBox MinimizeBox Sirven para hacer aparecer o desaparecer los botones de maximizado y minimizado en el borde superior derecho de la pantalla. En un formulario fijo, estos botones se han de quitar, no pintan nada y hace muy feo que queden alli. Size Define el tamao del formulario. Normalmente es mejor ajustar su tamao estirandolo directamente con el raton, pero si queremos que mida algo exacto, se pueden fijar en esta propiedad los valores. StartPosition Dice la posicin del formulario con respecto a la pantalla y al formulario que lo activa. Por defecto, esta propiedad vale WindowsDefaultLocation. No se debe dejar as. Los valores adecuados son: - CenterScreen: El formulario aparece centrado en la pantalla - CenterParent: El formulario aparece centrado en el que lo activ. Text Es el texto del titulo del formulario WindowState Para formularios sizeables, esta propiedad permite decidir si el formulario aparecer de alguna de las siguientes maneras: - Normal: En el tamao en que ha sido dibujado - Maximized: Ocupando toda la pantalla del ordenata. - Minimized: Iconizado en la barra de tareas. Existen propiedades de aspecto del formulario, tales como: BackColor BackgroundImage ForeColor Font Opacity TransparencyKey TopMost

Estas propiedades son muy majas de probar (fuentes, colores, etc). Sin embargo no deben ser cambiadas a no se que se quiera indicar algo muy importante con ese cambio. Las pantallas de un programa han de ser lo ms estndar posible, no deben ser de color rosa, con fuentes raras, ni nada semejante. Este tipo de cambios exigen una gran coherencia de imagen en todo el proyecto, y normalmente lo mejor es dejar la apariencia tal cual.

Eventos del formularioLos eventos son seales lanzadas por el formulario en tiempo de ejecucin, las cuales podemos capturar y definir el cdigo que se ejecutar cuando ocurran: Los que se usan ms normalmente son los siguientes: Load Activated Deactivate Closed Closing Click DoubleClick KeyUp KeyDown KeyPress MouseUp MouseDown MouseMove Paint Resize

Load Activated Deactivate Closed Closing Son eventos que se lanzan al cargar se formulario, al cargarse los controles y activarse, al perder el foco de activacin, y al descargarse. Veremos mas adelante un ejemplo de su uso, con un formulario hijo activado especficamente. Click DoubleClick MouseMove MouseUp MouseDown Son eventos que se lanzan al mover el ratn o pulsar los botones del mismo. KeyUp KeyDown KeyPress Son eventos que se lanzan al pulsar teclas en el teclado. (Atencin a la propiedad KeyPreview). Paint Evento lanzado cuando el formulario es repintado por el sistema operativo (estaba debajo de alguna otra cosa, adquiere visibilidad y debe ser redibujado). Rezise Evento lanzado cuando el formulario cambia de tamao.

Ejemplo de atencin a un evento del formulario.Vamos a hacer que en la barra del titulo del formulario, en todo momento, figure la posicin donde se encuentra el ratn. ?

Primero hemos de atender el evento MouseMove, que es el que se produce cuando el ratn cambia de sitio.

Hemos hecho doble click sobre el evento que queremos atender, y ha aparecido automticamente la funcin que se ejecutar cuando se produzca ese evento. Dentro de la funcin, hemos escrito this.Text = e.X + , + e.Y; que coloca en la propiedad Text del formulario la coordenada X y la coordenada Y separado por una coma. El argumento e (de tipo System.Windows.Forms.MouseEventArgs) contiene las propiedades actuales del ratn, entre las que estn la X y la Y, que son las que hemos utilizado.

Si abrimos el codigo manejado por el diseador del formulario, tenemos lo siguiente:

Aqu podemos ver que todas las propieadades que hemos establecido en tiempo de diseo, realmente han sido codificadas dentro del programa por el diseador de formularios. En la ultima linea, podemos ver como se aade el delegado Principal_MouseMove a la gestion de eventos de MouseMove del formulario, que es la que realmente codifica la gestion del evento. this.MouseMove es un array de punteros a funciones, que sern llamadas cuando se produzca el evento. Tiene sobrecargado el operador +, que permite aadir funciones a este array. Si queremos eliminar la atencin de este evento, deberemos eliminar esta linea del InitializeComponent, y luego borrar la funcion Principal_MouseMove. Una alternativa es posicionarnos en el evento (en el diseo del formulario), hacer botn derecho, y escoger Reset. Esto elimina la agregacin del delegado, pero todava deberemos eliminar manualmente la funcin Principal_MouseMove.

En tiempo de ejecucin nuestro programa ahora sera el siguiente (vemos como en la barra de ttulo aparecen las coordenadas del ratn en el momento actual):

INSERCION DE COMPONENTES DENTRO DE UN FORMULARIOVeremos ahora como insertar y utilizar los componentes ms normales, los ms sencillos.

Insercin de un men

Menu, una vez elaborado Componente de tipo Menu Hemos aadido un men al programa (seleccionar el componente, y hacer click en medio del formulario). Le hemos dado un nombre (en este caso MenuPrincipal). Hemos tecleado las opciones del men (es bastante intuitivo, type here, ). Le hemos dado nombre a las opciones que vamos a utilizar del men (Hacer Algo -> MNU_HacerAlgo, Salir -> MNU_Salir). Para meter un separador en el men, hay que insertar un elemento y ponerle como texto un guin. Ahora atendemos los eventos del men MNU_HacerAlgo, y del MNU_Salir, tal como se ha explicado en el caso del formulario. Hay que tener en cuenta que las propiedades y eventos que aparecen en la parte derecha del diseador corresponden al objeto que esta seleccionado.

Vemos que la opcin de men hacer algo nos da un mensaje (observar la llamada a MessageBox.Show), y que el men Salir termina la ejecucin del formulario (invoca al mtodo Close ()).

Hay que tener cuidado y dar nombres razonables a todos los elementos de men que vayan a ser utilizados como generadores de eventos. No se deben dejar elementos como MenuItem1, ni cosas por el estilo, porque despus es muy complicado ver que hace un programa y entenderlo.

Insercin de una etiqu