Você está na página 1de 56

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I.

Vliz

-25-

CAPITULO 14 CONSTRUYENDO APLICACIONES WINDOWS FORMS


Descripcin de formularios Windows Forms. Formularios Windows Forms, tambin conocido como WinForms, es el nombre dado a la interfaz grfica de usuario (GUI) de interfaz aplicacin programacin (API) incluida como parte de Microsoft.NET Framework, facilitando el acceso a los elementos de interfaz nativos de Microsoft Windows en envoltura de la API de Windows existente en cdigo administrado. Formularios Windows Forms es la interfaz ms utilizada para el desarrollo de una aplicacin, aunque otros tipos de aplicaciones tambin estn disponibles, tales como los servicios y aplicaciones de consola. Pero WinForms ofrecen la mejor forma posible para interactuar con el usuario y acepta la entrada del usuario en forma de tecla presionada o al hace clic con el ratn. Principios de diseo de interfaz de usuario. El mejor mecanismo para interactuar con cualquier aplicacin es a menudo una interfaz de usuario. Mejores prcticas para el diseo de la interfaz de usuario. Simplicidad. Posicin de los controles. Consistencia. Esttica. Color Fuentes. Imgenes e iconos. Trabajar con formularios Windows Forms. Para trabajar con formularios Windows Forms, necesita crear un proyecto de aplicacin de Windows Forms utilizando Visual Studio 2008. Para ello, haga clic en Inicio/ programas /Microsoft Visual Studio 2008 y, a continuacin, en la lista que aparece, elija Microsoft Visual Studio 2008. Se abrir la pgina de inicio de Visual Studio. Haga clic en archivo nuevo proyecto. Ahora ver el cuadro de dilogo nuevo proyecto, desde la que puede elegir la plantilla de aplicacin de Windows Forms, como se muestra en la figura 14-1.

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-26-

Figure 14-1. Escogiendo la ventana form aplication de plantilla de proyecto De forma predeterminada, el proyecto se denomina como WindowsApplication1 (el siguiente sera WindowsApplication2 y as sucesivamente). Puede introducir otro nombre para el proyecto en el cuadro de texto nombre cuando elija la plantilla de proyecto, o puede cambiar ms adelante el proyecto. Una vez haya elegido la plantilla que desee, haga clic en Aceptar. Se abrir el entorno de desarrollo integrado de Visual Studio (IDE), que se llama as porque tiene todo el desarrollo de herramientas, ventanas, cuadros de dilogo, opciones y as sucesivamente incrustado (o integracin) dentro de una ventana comn, que facilita el proceso de desarrollo. En el IDE, ver que se ha agregado un formulario de Windows denominado Form1.vb como abrir el proyecto, y a la derecha tambin se puede ver la ventana Explorador de soluciones. Tambin necesita saber acerca de una ventana ms llamado la ventana Propiedades. Si la ventana de propiedades no est disponible por debajo de la ventana del explorador de soluciones, se puede abrir haciendo clic en vista ventana Propiedades o presionar F4 ( alt entrar). Ahora, el entorno de desarrollo se ver como se muestra en la figura 14-2. Porque se trata de un proyecto de aplicacin de Windows Forms, trabajar con controles o herramientas que permiten lograr funcionalidad en forma de una GUI. Puede seleccionar los controles del cuadro de herramientas, se muestra en la parte izquierda del formulario de Windows, en el entorno de desarrollo. Si sita el puntero del ratn en la ficha del cuadro de herramientas, se abrir la ventana del cuadro de

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-27-

herramientas para que, como se muestra en la figura 14-3, y puede seleccionar controles desde all y colquelos en la superficie de la forma de Windows.

Figure 14-2. IDE con explorador de Solucin y la ventana de Propiedades

Figure 14-3. IDE con la barra de herramientas Descripcin de las vistas de cdigo y diseo. Tratan principalmente de dos vistas en el IDE de Visual Studio: diseo de vista y la vista Cdigo. Cuando se abre el IDE de Visual Studio, por defecto muestra la vista de diseo, como se muestra en la figura 14-3. Vista diseo permite arrastrar controles y soltarlos en el formulario. Puede utilizar la ventana de propiedades para establecer las propiedades de objetos y formas u otros archivos que se muestran en el explorador de soluciones. Explorador de soluciones tambin permite cambiar el nombre del proyecto, formas o incluso otros archivos incluidos en el proyecto.

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-28-

Para cambiar de vista Diseo a la vista Cdigo, haga clic en vista cdigo o haga clic en el formulario Windows Forms en la vista Diseo y seleccione Ver cdigo. Ambos mtodos abrir el editor de cdigo para usted como se muestra en la figura 14-4.

Figure 14-4. la vista de cdigo La ventana del editor de cdigo muestra toda la funcionalidad de cdigo. En la figura 14-4, nota la ficha Form1.vb (en el que ver cdigo) es junto a la ficha Form1.vb [diseo], que es realmente el modo de diseo de la FormForm1 de Windows; Estas fichas permiten cambiar entre todos los elementos de la GUI de la vista Diseo y el cdigo relacionado en la vista de cdigo que le ayuda a lograr la funcionalidad. Para volver a la vista Diseo, haga clic en el formulario en la vista Cdigo y seleccione Ver diseador; ver ahora se puede volver al modo de diseo y puede seguir trabajando con los elementos visuales, o controles. Tambin puede utilizar el explorador de soluciones para cambiar entre las vistas Diseo y cdigo de seleccin de la forma deseada de Windows (en caso de tener mltiples formularios abiertas de Windows Forms), el botn derecho y elegir la vista Cdigo o diseador de vistas. Se abrir la vista Cdigo o diseo de la forma de seccionada de Windows.

Propiedades de ordenacin en la ventana Propiedades.

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-29-

Cada objeto, como un formulario, control y as sucesivamente tiene muchas propiedades, puede que necesite configurar mientras trabaja con cualquier aplicacin. Para ayudarle a explorar las muchas propiedades que aparecen en la ventana de propiedades, puede ordenarlos por categora o por orden alfabtico. Vista clasificada. En la figura-14-5, en el que muestra la vista categorizado, bajo la categora apariencia, ver todas las propiedades enumeradas que definen la apariencia del objeto (en este caso, un formulario). Tenga en cuenta las otras categoras que tambin se muestra en la figura 14-5. Note Otras categoras intencionalmente nos hemos mantenido en el modo contrado en la figura 14-5, slo para mostrar todas las categoras. Cuando se cambia a la vista de categorizado, ver que todas las categoras se expanden por defecto

Figure 14-5. Vista clasificada de propiedades Vista alfabetica alfabticamente organiza propiedades en orden ascendente por el nombre de "a" a la "z". Puede cambiar a la alfabtico vista haciendo clic en el icono situado en la segunda posicin de la izquierda de la barra de herramientas se muestra en la parte superior de la ventana de propiedades.

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-30-

Figure 14-6. vista de propiedades ordenado en forma alfabetica Configuracin de propiedades de soluciones, proyectos y formularios Windows Forms. Seleccione el proyecto de WindowsApplication1 en el explorador de soluciones, vaya a la ventana de propiedades y modificar el valor de propiedad del archivo de proyecto, que define el nombre del archivo del proyecto, que aparecen como WinApp.vbproj Seleccione la propiedad de texto y modificar su valor de Form1 para aplicaciones de Windows. La propiedad de texto define el nombre que aparece en la barra de ttulo del formulario. Despus de establecer las propiedades para su solucin, el proyecto y el formulario de Windows, el IDE se ver como se muestra en la figura 14-7.

Figure 14-7. IDE despues de modificar la propiedades para su solucion en el proyecto y formulario windows

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz Trabajo con controles.

-31-

El elemento bsico de cualquier aplicacin de windows es el control, que desempea un papel clave al proporcionar el significado visual a la funcionalidad de cdigo incrustado en una aplicacin. Basada en nuestros aos de experiencia combinada, podemos decir con confianza que los controles ms utilizados son la etiqueta, botn, TextBox, RadioButton, ListBox y ComboBox. Las aplicaciones no pueden existir sin estos controles. Prubelo: trabajar con el cuadro de texto y controles de botn. En este ejercicio, crear una aplicacin de Windows Forms con tres etiquetas, dos cuadros de texto y un botn. La aplicacin acepta su nombre como entrada y, a continuacin, muestra un mensaje de "Bienvenida".

1 Vaya al proyecto denominado WinApp, ubicado en la solucin denominada capitulo14, que cre anteriormente (consulte a la figura 14-7). Asegurarse de que est en la vista Diseo. 2. Arrastre un control de etiqueta al formulario y colquela en la parte superior y el centro. Seleccione la etiqueta denominada label1, vaya a la ventana de propiedades y establezca su propiedad de texto de bienvenida. Seleccione la propiedad Font, haga clic en el botn de puntos suspensivos y especificar el tamao del control Label como 16 puntos en la lista desplegable de tamao. Tip Tambin puede hacer doble clic cualquier control del cuadro de herramientas para agregarlo a la forma. La diferencia entre arrastrando un control y haga doble clic en es que mientras arrastra, se puede colocar el control como se desee en el formulario. Pero si slo hacer doble clic en un control, se agregar a la esquina superior izquierda; as que si lo prefiere en una ubicacin diferente, tienes que arrastrar. 1. Arrastre dos controles Label ms al formulario y ponemos a continuacin el texto "Bienvenido", un poco hacia la izquierda del formulario. Seleccione la etiqueta denominada label2, vaya a la ventana de propiedades y establezca su propiedad Text en nombre. Seleccione la etiqueta denominada label3 y establezca su propiedad de texto en la ventana Propiedades para el apellido. 2. Arrastre dos controles TextBox al formulario y poner el TextBox denominado textBox1 delante de la etiqueta de nombre y el cuadro de texto denominado textBox2 delante de la etiqueta de apellido. 5 Seleccione textBox1, vaya a la ventana de propiedades y establezca su propiedad Name a txtNombre. Seleccione textBox2 y en la ventana Propiedades, establezca su propiedad Name a txtApellido. 6. Arrastre un control de botn en el Form y colocarlo por debajo de los controles Label y TextBox. Seleccione el control de botn, vaya a la ventana Propiedades, cambie la

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-32-

propiedad de nombre a btnEnviar y, a continuacin, establezca su propiedad de texto para enviar. Ahora tiene su diseo de GUI de la aplicacin lista; debe ser similar a la forma mostrada en la figura 14-8 .

Figure 14-8. diseo GUI en el Windows Application form Cuadro de propiedades


Propied Objeto ad Valor "APLICACIN DE Form1 Text WINDOWS" Label1 Text "Bienvenido" Label2 Text "Nombre" Label3 Text "Apellido" TextBo x1 Name txtNombre TextBo x2 Name txtApellido Button 1 Name btnEnviar Button 1 Text Enviar

Es tiempo para agregar funcionalidad y cambiar a la vista de cdigo. Usted va a leer en los valores de nombre y apellido proporcionados por el usuario y muestra de un mensaje en un clic en el botn de enviar, lo que significa que tiene que poner toda la funcionalidad detrs de evento click del botn enviar, que eventualmente a leer los valores de los cuadros de texto. Para lograr esto, continuar con estos pasos: 7. Haga doble clic en el botn Enviar. Esto le llevar a la vista Cdigo, y ver que la plantilla de evento BntEnviar_Click se ha agregado a la ventana del editor de cdigo, como se muestra en la figura 14-9. 8 Ahora agregue el siguiente cdigo dentro de este evento de BntEnviar_Click para obtener la funcionalidad deseada
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEnviar.Click

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz


MessageBox.Show("Hola" & " " & TxtNombre.Text & " " & TxtApellido.Text & " " & _ "Bienvenido a la aplicacion de Windows", "Bienvenido") End Sub

-33-

9. Una vez que haya agregado el cdigo, haga clic en generar \ generar solucin y garantizar que el proyecto obtiene construir con xito.

Figure 14-9. vista de cdigo en Windows Forms Application project 10. Ahora es el momento para ejecutar y probar la aplicacin. Para ello, presione Ctrl + F5. Visual Studio 2008 se cargar la aplicacin. 11. Introduzca valores en los cuadros de texto nombre y apellido y, a continuacin, haga clic en el botn Enviar. Aparecer un mensaje similar a la que se muestra en la figura 14-10. 12. 12 Haga clic en Aceptar y, a continuacin, cierre el formulario de aplicacin para Windows.

Figure 14-10. ejecutando la aplicacin Windows form La propiedad anchor y dock La primera propiedad se llama Anchor y permite modificar el tamao del control ajustndolo a cualquiera de los cuatro lados extremos , la segunda propiedad se llama Dock y permite acoplar el control a uno de los cuatro bordes o esquinas o tambin hace que el control sea del mismo tamao que el formulario ( opcin Fill).

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz Propiedad Dock.

-34-

La propiedad Dock para un control se puede establecer mediante la interfaz grfica proporcionada en la ventana de propiedades como se muestra en la figura 14-11.

Figure 14-11. Ajuste de la propiedad de Dock Propiedad de anclaje(anchor). Cuando un usuario cambia el tamao de un formulario, los controles de mantienen una distancia constante de los bordes de su formulario principal con la ayuda de la propiedad Anchor. Se establece el valor predeterminado de la propiedad Anchor para cualquier control para superior, izquierdo, que significa que este control mantendr una distancia constante de los bordes superior e izquierdos de la forma. La propiedad Anchor se puede establecer mediante la interfaz grfica proporcionada en la ventana Propiedades, como se muestra en la figura 14-12. Debido a la configuracin predeterminada de propiedad Anchor arriba, izquierda, si se intenta cambiar el tamao de un formulario estirando hacia la derecha, ver que sus controles todava estn situados a la izquierda en lugar de desplazar el centro de la Formpara ajustar el tamao de la forma despus de realiza el cambio de tamao. Si frente a bordes, por ejemplo, izquierda y derecha, estn establecidos en la propiedad Anchor, el control se extender cuando cambia el tamao de la formis. Sin embargo, si ninguno de los bordes opuestos se establece en la propiedad Anchor, el control flotar cuando se cambia el tamao de la matriz.

Figure 14-12. Al establecer la propiedad Anchor

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz Prubelo : trabajar con las propiedades (base dock) yde anclaje.

-35-

En este ejercicio, utilizar la aplicacin de formas existentes de Windows llamado WinApp, que cre anteriormente en el captulo. Ver cmo modificar esta aplicacin de forma que cuando se cambia el tamao del formulario, los controles se comportan en consecuencia y mantener la aplicacin presentable para el usuario. 1. Vaya al explorador de soluciones y abra el proyecto de WinApp. Abra el formulario WinApp en modo de diseo. 2. . Seleccione el formulario haciendo clic en su barra de ttulo; ver los controles en la frontera del formulario, que permiten cambiar el tamao de alto y el ancho del formulario. 3. Coloque el cursor en el punto de control de la frontera de la derecha y cuando el puntero del ratn se convierte en dos puntas, haga clic en y estirar el formtoward de la derecha. Ver aumentos de ancho de esa forma, pero los controles siguen anexados a la esquina izquierda del formulario. 4. Del mismo modo, asidero situado en la parte inferior del formulario y tratar de aumentar la altura del formulario. Notar que los controles son an sujeto a la parte superior del formulario Eche un vistazo en la figura 14-13, que muestra un formulario (alto y ancho) ha cambiado de tamao y la posicin de los controles. Los controles aparecen en la esquina superior izquierda porque sus valores de propiedad de base son ninguno y valores de propiedad de anclaje superior, izquierda

Figure 14-13. Redimnsionado del formulario y posicin de controles Ahora se intentar establecer las propiedades Dock y anclaje de los controles y, a continuacin, volver a probar la aplicacin. 5. Seleccione el control de etiqueta con un valor de texto de bienvenida y vaya a la ventana de propiedades. Seleccione la propiedad AutoSize y establezca su valor en False (el valor predeterminado es True). 6. Cambiar el ancho del control Label para el ancho del formulario y ajustar el control de etiqueta para el borde superior del formulario. Establezca esta propiedad del control TextAlign para superior, centro. 7. Establezca la propiedad Dock para el control de etiqueta de ninguno a la parte superior, lo que significa que desea la etiqueta que se coloque siempre con el borde superior de la forma. 8. Ahora seleccione todos los controles restantes (dos etiquetas, dos cuadros de texto y un botn) o bien desplazndose sobre todos ellos mientras mantiene

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-36-

pulsado el botn izquierdo del ratn o seleccionando cada uno con un clic mientras presionando hacia abajo o la tecla Mays o Ctrl. 9. Cuando haya seleccionado todos los controles, vaya a la ventana de propiedades. Ver muestran todas las propiedades comunes a los controles que ha seleccionado en el formulario. 10. Seleccione la propiedad Anchor; modificar su valor predeterminado arriba, izquierda para arriba, izquierda y derecha. Esto permite ajustar los controles en consecuencia tan pronto como se cambia el tamao del formulario. Los controles tambin crecer en tamao en consecuencia para ajustar el ancho del formulario, como se puede ver en la figura 14-14

. Figure 14-14. El efecto de la propiedad Anchor con el redimensionado Top, Left, Right Note La propiedad Anchor tiene comportamientos muy interesantes; puede tratar de establecer esta propiedad en diversas combinaciones y ver sus efectos cuando cambia el tamao de su formulario. 11. Enviar el formulario a su tamao anterior para que pueda ver los efectos de establecer otra propiedad de anclaje. 12. Seleccione todos los controles de nuevo como se hizo en el paso 8. Establecer la propiedad Anchor al comienzo slo y tratar de cambiar el tamao de la forma ahora. Observe que los controles estn flotando en medio de la forma al cambiarle el tamao, como se puede ver en la figura 14-15. ( propiedad none)

Figure 14-15. el efecto de la propiedad Anchor property en none 13. Guardar los cambios en el proyecto haciendo clic en el archivo guardar todo.

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz Agregar un nuevo formulario para el proyecto.

-37-

Obviamente necesitar varios formularios Windows Forms en un proyecto dado. De forma predeterminada, cada proyecto se abre con un nico formulario Windows Forms, pero usted es libre para agregar ms Pruebe: Agregar un nuevo formulario para el proyecto de Windows. En este ejercicio, agregar otro formulario Windows Forms para su proyecto. Tambin se trabaja con un control ListBox y ver cmo agregar elementos a ese control. 1. Vaya al explorador de soluciones y seleccione el proyecto WinApp, con el botn derecho y haga clic en Agregar formulario Windows formulario. Esto agregar un nuevo formulario Windows Forms en el proyecto.

2. En el cuadro de dilogo Agregar nuevo elemento que se muestra, cambiar el

nombre del formulario de Form1.vb a AddNames.vb. Haga clic en Agregar. El nuevo formulario con el nombre AddNames se agregar al proyecto.

3. Asegrese de que el formulario recin agregado AddNames est abierto en la vista Diseo. Arrastre un control de etiqueta hasta el cambio de Formy su propiedad de texto que escriba el nombre. 4. Arrastre un control TextBox al formulario de AddNames y modificar su propiedad Name a txtName. 5. Arrastre un control ListBox al formulario de AddNames y modificar su propiedad Name a lstName. 6. Agregar un control de botn al formulario AddNames y modificar su propiedad Name a btnAdd y su propiedad de texto para agregar. Ahora haya terminado con la parte del diseo de la forma AddNames; el formulario debe parecerse a la que se muestra en la figura 14-16.

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-38-

Figure 14-16. diseo de GUI del formulario AddNames


Propied Objeto ad Valor "Adicionar Form1 Text Nombres" "Adicionar Label1 Text Nombres" ListBox 1 name LstName Label3 Text "Apellido" Button 1 Name BtnName Button 1 Text Agregar

Desea que el usuario agregue un nombre en el cuadro de texto y haga clic en el botn Aadir, despus de que ese nombre se agregar al cuadro de lista. Para ello, debe escribir la funcionalidad de cdigo tras el evento click del botn Agregar. 7 Haga doble clic en el botn Agregar y escriba el siguiente cdigo, que leer el nombre especificado en el cuadro de texto y agregar al cuadro de lista, en el evento btnAdd_Click. Ls Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAgregar.Click lstName.Items.Add(txtName.Text) txtName.Clear() End Sub 8 Vaya al men Build y seleccione Generar solucin. Ver un mensaje que indica una generacin correcta. Mantener el proyecto actual abierto, ya que necesitar inmediatamente para el siguiente ejercicio. Pruebe: Configurar el formulario de inicio. Configurar el formulario de inicio en un VB.NET es un poco complicado, por lo que quisimos salir en su propio ejercicio. Para configurar un formulario de inicio, siga estos pasos:

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-39-

1. En el explorador de soluciones, seleccione el proyecto de WinApp, haga clic en el proyecto y seleccione la opcin Propiedades. Ser en la pgina de la aplicacin por defecto. Se ver un cuadro de lista denominado formulario de inicio; de forma predeterminada tendr el nombre de la primera forma que cre, WinApp. Abra la lista desplegable Formulario de inicio y seleccione AddNames, como se muestra en la figura 14-17. Esto asegurar que cuando se ejecuta el proyecto abrir el formrather de AddNames que la forma de WinApp. 2. Ejecutar el proyecto presionando Ctrl + F5. Cuando aparezca el formulario AddNames, escriba su nombre en el cuadro de texto correspondiente y haga clic en el botn Agregar. Se agregar su nombre en el cuadro de lista, como se muestra en la figura 14-18 .

Figure 14-17. Configuracin del formulario de inicio en la ventana Propiedades

Figure 14-18. Ejecutando la aplicacin Windows Form AddNames Implementar un formulario MDI.

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-40-

El termino Multiple interfaz de documentos (MDI) significa tener una interfaz grfica de usuario que permite varios documentos o formularios en un solo formulario primario o ventana. Tener una ventana individual para cada instancia de la misma aplicacin se denomina SDI (interfaz de documento nico); aplicaciones, como el Bloc de notas, Microsoft Paint, calculadora, etc. son aplicaciones SDI. Aplicaciones SDI slo se abrieron en sus propio windows y pueden ser difciles de manejar, a diferencia de cuando tienes varios documentos o formularios abiertos dentro de una interfaz MDI. Por lo tanto, las aplicaciones MDI siguen un modelo de comando relacin principal forma y formulario hijo. Aplicaciones MDI permiten abrir, organizar y trabajar con varios documentos al mismo tiempo. El formulario primario (MDI) y organiza todo formularios hijo o documentos que estn abierto. Pruebe: Crear un formulario MDI principal con una barra de mens. En este ejercicio, crear un formulario MDI en el proyecto WinApp. Tambin ver cmo crear una barra de men para el formulario principal, que permite navegar a todos los formularios secundarios. Para ello, siga estos pasos:
1 Vaya al explorador de soluciones, seleccione el proyecto WinApp, con el botn

derecho y seleccione Agregar formulario Windows. Cambiar el nombre de Form1.vb a ParentForm.vb y haga clic en Agregar.

2 Seleccione el ParentForm recin agregado en modo de diseo y navegar hasta

la ventana de propiedades. Establezca el valor de la propiedad IsMdiContainer en True (el valor predeterminado es False). Observe que el color de fondo del formulario ha cambiado a gris oscuro. 3 Modificar el tamao de la ParentForm para que pueda contener las dos formas que cre anteriormente, WinApp y AddNames, en su interior. 4 Agregar un men a la ParentForm arrastrando un MenuStrip (control que sirve para el propsito de una barra de mens) en el ParentForm. En la esquina superior izquierda, ahora debera ver un men desplegable con texto que diga escriba texto aqui Introduzca los formularios abiertos en la lista desplegable. Se trata de su men principal de nivel superior.

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-41-

5 Ahora en el men de los formularios abiertos, agregar un submen introduciendo

el texto Win App. 6 En el submen Win App, escriba agregar nombres. . 7 Ahora haga clic en el men superior, formularios abiertos, y en el lado derecho de la misma, escriba Ayuda. 8 En el men Ayuda, escriba Salida. 9 Ahora es el momento para adjuntar el cdigo a los submens que agreg bajo el men principal de formularios abiertos. En primer lugar, va a agregar cdigo para el submen Win App, que bsicamente se abrir el formulario de WinApp. En modo de diseo, haga doble clic en el submen Win App, que le llevar al editor de cdigo. En el evento click, agregue el cdigo siguiente: Dim wa As WinApp = New WinApp wa.Show() 10Ahora es necesario asociar funcionalidad con el submen Agregar nombres: haga doble clic en este submen y en el evento click, agregue el cdigo siguiente: Dim an As AddNames = New AddNames an.Show() 11Para asociar la funcionalidad con el submen salida situado bajo el men de ayuda, haga doble clic en salir y en el evento click, agregue el cdigo siguiente: Application.Exit() Otra vez, mantener el actual proyecto abierto, ya que necesitar inmediatamente para el siguiente ejercicio. Pruebe: Crear un formulario MDI secundario y ejecutar una aplicacin MDI. En este ejercicio, se asociar todos los formularios que cre anteriormente como formularios MDI secundarios para el formulario MDI principal principal, que cre en la tarea anterior . 1 En el proyecto que se ha modificado en el ejercicio anterior, primero a realizar la WinApp forman un formulario MDI secundario. Para hacerlo, debe establecer la propiedad MdiParent en el nombre del formulario MDI primario, pero en el editor de cdigo. Ya ha agregado la funcionalidad de la tarea anterior (abrir el formulario de WinApp); justo antes de la lnea donde est llamando el mtodo Show, agregue el cdigo siguiente: wa.MdiParent=Me Despus de agregar esta lnea, el cdigo aparecer como sigue: Dim wa As WinApp = New WinApp wa.MdiParent = Me wa.Show() Note Me es una palabra clave de lenguaje VB que representa la instancia actual de la clase. En este caso, se refiere a la ParentForm. Porque son escribir este cdigo dentro de ParentForm, puede usar el Me clave para el mismo.

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-42-

2 Ahora har las AddNames forman un formulario MDI secundario. Para hacerlo, debe establecer la propiedad MdiParent en el nombre del formulario MDI primario, pero en el editor de cdigo. Agregue el cdigo siguiente como lo ha hecho en el paso anterior: an.MdiParent=Me Despus de agregar esta lnea, el cdigo aparecer como sigue: Dim an As AddNames = New AddNames an.MdiParent = Me an.Show() 3 Ahora tienes toda la funcionalidad de cdigo en el lugar, y casi se configura para ejecutar la aplicacin. Pero en primer lugar, hay que poner todos los controles del formulario MDI, ParentForm en este caso, y por lo que es necesario establecer ParentForm como el objeto de inicio. Para ello, seleccione el proyecto WinApp, con el botn derecho y seleccione Propiedades. Establece el formulario de inicio desplegable en ParentForm (vase figura 14-17 anteriormente en este captulo para referencia). 4 Ahora construir la solucin y ejecutar la aplicacin pulsando F5; la aplicacin MDI se abrir y debera aparecer como se muestra en la figura 14-19.

Figure 14-19. Running an MDI form application 5. Haga clic en formularios abiertos \Win App; debe abrir el formulario WinApp. De nuevo, abra el men principal y haga clic en Agregar nombres. Tanto las formas ahora deben estar abiertas dentro de la aplicacin de formulario primario MDI principal, como se muestra en la figura 14-20.

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-43-

Figure 14-20. Abriendo formularios hijos en la aplicacion MDI 6 Porque tanto los formularios son abiertos dentro de uno de los padres MDI, resulta ms fcil trabajar con ellos. Alternar entre estas formas haciendo clic en las barras de ttulo. 7 Una vez que haya terminado con los formularios, cierre la aplicacin Salidad para salir Como trabaja En la tarea de "Crear un formulario MDI hijoy ejecutar una aplicacin MDI", agrega las lneas en negrita: Dim wa As WinApp = New WinApp wa.MdiParent = Me wa.Show() Dim an As AddNames = New AddNames an.MdiParent = Me an.Show() lnea indica el formulario secundario que es su padre. Como desea que todos los formularios secundarios que aparezca dentro de ParentForm, y se escribe el cdigo en el formulario MDI principal, puede utilizar la palabra clave Me para representar el objeto actual. Cdigo completo del formulario principal Public Class ParentForm Private Sub Form1ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Form1ToolStripMenuItem.Click Dim wa As WinApp = New WinApp wa.MdiParent = Me wa.Show() End Sub

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-44-

Private Sub AddNamesToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AddNamesToolStripMenuItem.Click Dim an As addnames = New addnames an.MdiParent = Me an.Show() End Sub Private Sub SalidaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SalidaToolStripMenuItem.Click Application.Exit() End Sub End Class

CAPITULO 17 TRABAJANDO CON EVENTOS


. Los usuarios interactan con las aplicaciones mediante el uso de dispositivos de entrada como el teclado o el ratn para brindar informacin que estas aplicaciones. Hacer que los usuarios utilizando dispositivos de entrada se traduce en eventos que son reconocidos y as causan ciertas acciones que se produzca. Hacer clic con el ratn es la tarea ms comn que todos los usuarios Entendiendo eventos Un evento puede definirse como una accin que un usuario puede responder a una accin que pueden ser manejados en forma de cdigo. Normalmente se generan eventos por una accin del usuario, como hacer clic en el ratn o presionar una tecla. Eventos estn asociados con los controles que pones en formularios Windows Forms o de formularios web forms y siempre existecdigo de cualquier funcionalidad detrs de comportamiento de un control, por ejemplo, un clic del mouse, entonces se producir ese evento asociado y la aplicacin responder a ese evento. Ninguna solicitud puede escribirse sin eventos. Aplicaciones basadas en eventos ejecutan cdigo en respuesta a eventos. Cada formulario y control expone un conjunto de eventos que puede programarse Si se produce uno de estos eventos y hay cdigo en el controlador de eventos asociado, se invoca el cdigo. Eventos habilitar una clase o para notificar a otras clases o objetos cuando algo de inters se produce. El sistema de todo evento funciona de la forma del modelo publicador y el suscriptor. La clase que enva o provoca el evento es conocida como el editor, y la clase que recibe (o maneja) ese evento es conocida como el suscriptor. En una aplicacin tpica de Windows Forms de Visual Basic o aplicacin web, suscribirse a los eventos provocados por controles, como botones, cuadros de lista, LinkLabels, etctera. El entorno de desarrollo integrado (IDE) de Visual Studio 2008 permite examinar los eventos que publica un control y seleccione los que desea manejar. El IDE agrega automticamente un mtodo controlador de eventos vaco y el cdigo para suscribirse al evento. Propiedades de eventos.

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-45-

Los eventos asociados con cualquier clase u objeto trabajan de forma predefinida. Aqu, se describen las propiedades de eventos y la forma de las obras de publicador y el suscriptor para lograr funcionalidad:

El Editor determina cuando se provoca un evento; el suscriptor determina qu accin hay que tomar en respuesta al evento. Un evento puede tener varios suscriptores. Un suscriptor puede controlar varios eventos de varios publicadores. Eventos que no tiene ningn suscriptor nunca se llaman. Eventos suelen utilizarse para sealar las acciones del usuario, como los clics de botn o selecciones de men en interfaces grficas de usuario. Cuando un evento tiene varios suscriptores, los controladores de eventos se invoca de forma sincrnica cuando se provoca un evento. Pueden utilizarse para sincronizar subprocesos. En el.Biblioteca de clases de NET Framework, los sucesos se basan en el delegado EventHandler y la clase base de EventArgs. Diseo de eventos. Acontecimientos ocurren antes de su accin asociada (aplicable) o despus de que la accin produce (post-events). Por ejemplo, cuando un usuario hace clic en un botn de una ventana, una post-event se produce, permitiendo que los mtodos especficos de la aplicacin a ejecutar. Un delegado de controlador de eventos se enlaza al mtodo que se ejecute cuando el sistema provoca un evento. Se agrega el controlador de eventos para el evento para que pueda invocar su mtodo cuando se provoca el evento. Eventos pueden tener datos especficos del evento (por ejemplo, un evento de pulsacin del ratn puede incluir datos sobre la ubicacin del cursor de la pantalla). La firma del controlador de eventos observa las siguientes convenciones: el tipo de valor devuelto es Void. El primer parmetro es el nombre remitente y es de tipo Object. Esto representa el objeto que provoc el evento. El segundo parmetro es el nombre e y es de tipo EventArgs o una clase derivada de EventArgs. Esto representa los datos especficos del evento. El evento toma slo estos dos parmetros. Ejemplo Public Class Form1 Private Sub Button1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseDown TextBox1.Text = "HOLA MUNDO" sender.TEXT = "HOLA MUNDO" Me.Text = " X= " & e.Location.X & "Y= " & e.Y End Sub End Class Puede modificar y vea el resultado Nombre de procedimiento de evento = Button1_MouseDown Parametro del objeto = sender relacionado al botn 1

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz Parametro de evento = e relacionado al evento MouseDown Eventos comunes planteados por los controles.

-46-

Diversos controles vienen con Visual Studio 2008, y estn construidos para lograr funcionalidad diferente una de otra. Sin embargo, la industria ha identificado algunos eventos que son comunes entre muchos controles, y la mayora de las aplicaciones utilizan slo estos tipos de controles. Tabla 17-1 describe los eventos comunes entre diversos controles. Event Click Name Description Normalmente se produce al hacer clic izquierdo del ratn. Este evento tambin puede ocurrir con la entrada de teclado en la situacin cuando se selecciona el control y se presiona la tecla entrar DoubleClick Ocurre cuando cuando el botn izquierdo del mouse es presionado dos veces rpidamente. KeyDown Ocurre cuando una tecla es presionado y un control tiene foco. KeyPress Se produce cuando se presiona una tecla y un control tiene el foco. KeyUp Se produce cuando se suelta una tecla y un control tiene el foco. Mouse Click Se produce cuando se hace clic sobre un control con el mouse. MouseDoubleClick Se produce cuando se hace dobel clic sobre un control con el mouse MouseDown MouseUp MouseEnter MouseHover MouseLeave MouseMove MouseWheel Se produce cuando el puntero del mouse se encuentra sobre un control y que se hace clic en el botn del ratn. Occurs when a mouse button is released over a control. Ocurre cuando el puntero del mouse entra al control. Occurs cuando el punter del mouse se posiciona en el control. Occurs cuando el punter del mouse sale del control . Occurs when the mouse rotates or moves over a control Se produce cuando el usuario gira la rueda del mouse y un control tiene el foco

Generador de evento y de los consumidores. Es otra forma de pensar de un evento como un mecanismo que notifica el sistema operativo Windows o la.NET Framework que algo ha ocurrido en la aplicacin, y por lo tanto la funcionalidad lleva a cabo una vez lo recibe una respuesta de la.Plataforma NET Framework o Windows. La aplicacin, que tiene los controles con la funcionalidad asociada con ellos en forma de eventos, es conocida como el consumidor y la.Plataforma NET Framework o Windows, que recibe la solicitud para el evento que tendr lugar, es conocida como el generador de evento. Los controles vienen con diversos tipos de eventos para servir de funcionalidad en concreto. El segmento de cdigo conocido como el controlador de eventos notifica a la aplicacin una vez que ha ocurrido un evento para que las acciones adecuadas pueden ser implementarse detrs de este controlador de eventos.

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-47-

Pruebe: Crear un controlador de eventos. En este ejercicio, ver cmo agregar un controlador de eventos para un control en un formulario Windows Forms. 1 Abra un nuevo proyecto de aplicacin de Windows Forms y cambiar el nombre de la solucin y proyecto como Chapter17. Cambiar el nombre de Form1.vb a Events.vb y tambin modificar la propiedad de texto del formulario para eventos. 2. Abra el cuadro de herramientas y arrastre un control de botn sobre al formulario. Seleccione el control de botn, vaya a la ventana de propiedades y para el tipo de propiedad de texto del control haga clic en Me. Pulse el botn de forma de rayo situado en la barra de herramientas que se muestra en la ventana de propiedades, y ver toda la lista de eventos que admite el control Button; se pueden escribir controladores de eventos para todos estos eventos (vase figura 17 - 1). Observe tambin la informacin sobre herramientas titulado "Eventos" bajo el botn de forma del relmpago. 3.. De forma predeterminada, el evento Click viene preseleccionado, y el rea de texto al lado del evento est en blanco. Haga doble clic en este campo en blanco, y ver que se ha creado un controlador de eventos button1_Click el nombre, como se muestra en la figura 17-2.

Figura 17-1. The events list in Designer Figure 17-2. Event handler creation in mode Designer mode 4. . Ya se ha generado el controlador de eventos button1_Click, su plantilla estar disponible en la vista Cdigo. Cambie a la vista de cdigo del formulario Windows, llamado Events.cs, para ver el controlador de eventos y prepararse para escribir la funcionalidad para el evento Click (vase la figura 17-3).

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-48-

Figure 17-3. Controlador de eventos en la vista Cdigo 5. En el controlador de eventos button1_Click(), escriba la siguiente lnea de cdigo: MessageBox.Show("Yo he hecho clic en Me") 6. Generar y ejecutar la aplicacin, haga clic en button1, y ver un cuadro de dilogo aparecen debido al evento que se provoca cuando se hace clic en el botn.

Cmo funciona. El evento ms comunes que controla un botn, que tambin pasa a ser el predeterminado, es el evento Click. En este ejemplo, escribe cdigo rpido un cuadro de mensaje cuando un usuario hace clic en el botn en el formulario: MessageBox.Show("Yo he hecho clic en Me") Prubelo : trabajar con eventos de movimiento del ratn. En este ejercicio, ver los eventos asociados con los movimientos del ratn. Para probarlos, siga estos pasos: 1. vaya al explorador de soluciones y abra el formulario de eventos en la vista Diseo. 2 Arrastre un control TextBox al formulario de Windows slo bajo el control de button1. Seleccione el control TextBox, y ver una flecha en la frontera de la parte superior derecha del control; Esta flecha se llama una etiqueta inteligente.

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-49-

Note La funcin de etiqueta inteligente est disponible con algunos controles. El objetivo principal de esta funcin es proporcionar a los desarrolladores especificar un conjunto de acciones para un control en tiempo de diseo una forma generalizada. Haga clic en el icono de un componente etiqueta inteligente permite seleccionar de una lista de acciones disponibles desde el panel de etiquetas inteligentes. 3. Haga clic en la etiqueta inteligente, y un pequeo panel aparecer mostrando una casilla de verificacin Habilitar la propiedad de Multi - lnea (vase la figura 17-4) .

Figure 17-4. Etiqueta inteligente para el control TextBox 4 Haga clic en la casilla de verificacin multilnea que se muestra en la etiqueta inteligente de emergente, y ver la altura del aumento de cuadro de texto, como se muestra en la figura 17-5.

Figure 17-5. establecer la propiedad Multiline con la etiqueta inteligente del control TextBox 5 Ahora haga clic fuera del TextBox en el propio formulario para conservar el nuevo tamao de que la propiedad MultiLine ha dado para el cuadro de texto por defecto. Si lo desea, tambin puede utilizar los controles (los tres pequeos rectngulos en cada lnea de frontera) para cambiar el tamao del control TextBox. Tip Tambin se puede establecer la propiedad MultiLine de un cuadro de texto sin utilizar la funcin de etiqueta inteligente. Puede establecer directamente la propiedad MultiLine en True, que se establece en False de forma predeterminada. 6. Arrastre un control de etiqueta de la caja de herramientas para a continuacin el cuadro de texto y establezca su propiedad AutoSize en False. Tambin, establecer propiedad de tamao de fuente de la etiqueta a 12 y la propiedad TextAlign para

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-50-

MiddleCenter. Ahora se ver el formulario de eventos como el que se muestra en la figura 17-6.

Figure 17-6. Los eventos Windows Form con controles


7. Seleccione el cuadro de texto, abra la ventana Propiedades y haga clic en el

botn eventos. En la lista de eventos, haga doble clic en el rea de texto de los eventos MouseEnter y MouseLeave. Simplemente, esto crear los controladores de eventos para estos eventos de movimiento de ratn de dos. 8. Cambie a la vista Cdigo y agregue el siguiente cdigo para los controladores de eventos MouseEnter y MouseLeave: Private Sub TextBox1_MouseEnter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.MouseEnter Label1.Text = "Mouse Entr al TextBox" End Sub Private Sub TextBox1_MouseLeave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.MouseLeave Label1.Text = "Mouse Salio del TextBox" End Sub 9. Vaya al men Build y haga clic en generar solucin; recibir un mensaje que indica una generacin correcta. 10. Presione F5 para ejecutar la aplicacin. Ahora aparecer un mensaje en el control Label dependiendo de la accin que realizar con el ratn. Mueva el puntero del mouse sobre el cuadro de texto, y ver el mensaje que se muestra en la figura 17-7 .

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-51-

Figure 17-7. demostrando el evento MouseEnter 11. Ahora mueva el puntero fuera del cuadro de texto, y ver el mensaje que se muestra en el control Label cambiar (ver figura 17-8). Cmo funciona. El evento MouseEnter ocurrir cuando tome el puntero del ratn en el cuadro de texto que tenga el foco, y esto ser reconocido por el controlador de eventos MouseEnter, dando como resultado el mensaje apropiado que se muestra en el control de etiqueta. Del mismo modo, cuando se mueve el puntero del ratn el foco del cuadro de texto, el evento MouseLeave obtiene en la accin, y nuevamente se muestra el mensaje apropiado en el control de etiqueta. Prubelo: trabajar con el teclado KeyDown y KeyUp eventos. En este ejercicio, trabajar con los eventos KeyDown y KeyUp, que estn asociados con los controles que pueden recibir una entrada desde el teclado cuando un usuario presiona o suelta la tecla Mays, Alt y Ctrl. Para probar estos eventos, siga estos pasos: 1. Vaya al explorador de soluciones y abra el formulario Events.vb en la vista Diseo. 2. Seleccione el control de cuadro de texto, abra la ventana Propiedades y haga clic en el botn eventos. En la lista de eventos, haga doble clic en el rea de texto del evento KeyDown. Simplemente, esto crear un controlador de eventos para el evento KeyDown. 3. Cambie a la vista Cdigo y agregue el cdigo siguiente al controlador de eventos KeyDown: Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown If e.Alt = True Then Label1.Text = " La tecla Alt ha sido presionado" Else If e.Control = True Then Label1.Text = "La tecla control a sido presionado" Else If e.Shift = True Then Label1.Text = "La tecla shift a sido presionado" End If

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz End If End If End Sub

-52-

4. Cambiar otra vez vuelva a la vista de diseo. Seleccione el control de cuadro de texto, abra la ventana Propiedades y haga clic en el botn eventos. En la lista de eventos, haga doble clic en el rea de texto del evento KeyUp. Simplemente, esto crear un controlador de eventos para el evento KeyUp del teclado. 5 Cambie a la vista Cdigo y agregue el cdigo siguiente al controlador de eventos KeyUp: Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp If e.Alt = False Or e.Control = False Or e.Shift = False Then Label1.Text = "La tecla ha sido soltado" End If End Sub 6. Vaya al men Build y haga clic en generar solucin; ver un mensaje que indica una generacin correcta. 7. Presione F5 para ejecutar la aplicacin. Mueva el puntero del mouse sobre el cuadro de texto, haga clic una vez y, a continuacin, pulse y suelte la tecla Alt, Ctrl o tecla Mays; ver un mensaje que se muestra en el control de etiqueta que indica qu tecla ha pulsado

Cmo funciona. Con el evento KeyDown, reconoce que tecla en un momento determinado en el tiempo. El condicional si declaracin le ayuda a rastrear qu tecla se ha presionado y mostrar el mensaje en el control de etiqueta: If e.Alt = True Then Label1.Text = " La tecla Alt ha sido presionado" Else If e.Control = True Then Label1.Text = "La tecla control a sido presionado" Else If e.Shift = True Then Label1.Text = "La tecla shift a sido presionado" End If End If End If El evento KeyUp reconoce siempre la tecla que se presion ha sido lanzada y como resultado muestra el mensaje apropiado en el control de etiqueta:

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz If e.Alt = False Or e.Control = False Or e.Shift = False Then Label1.Text = "la tecla ha sido soltada" End If Pruebe : trabajar con eventos de pulsacin de tecla del teclado.

-53-

En este ejercicio, trabajar con el evento KeyPress. El evento KeyPress obtiene en accin cuando el control asociado recibe la entrada en el formulario una pulsacin de tecla; Si la clave tiene un valor ASCII, se provoca el evento KeyPress. Para probar este evento, siga estos pasos: 1. Vaya al explorador de soluciones y abra el formulario Events.vb en la vista Diseo. 2. . Seleccione el control de cuadro de texto, abra la ventana Propiedades y haga clic en el botn eventos. En la lista de eventos, haga doble clic en el rea de texto del evento KeyPress. Simplemente, esto crear un controlador de eventos para el evento KeyPress. 3. Cambie a la vista Cdigo y agregue el cdigo siguiente al controlador de eventos KeyPress: Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress If Char.IsDigit(e.KeyChar) = True Then Label1.Text = "Usted a presionado una tecla numerica" Else If Char.IsLetter(e.KeyChar) = True Then Label1.Text = "usted ha presionadao una tecla de caracter" End If End If End Sub 3. Ahora vaya al men Build y haga clic en generar solucin; ver un mensaje que indica una generacin correcta. 4 Presione F5 para ejecutar la aplicacin. Haga clic en el cuadro de texto y, a continuacin, presione una tecla de nmero o letra del teclado. Ver que un mensaje se muestra en el control de etiqueta que indica el tipo de clave presionado.

Cmo funciona. Con el evento KeyPress, reconoce si se ha presionado una tecla alfabtica o numrica en un momento determinado en el tiempo. El condicional si declaracin le ayuda a

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-54-

rastrear qu tecla se ha presionado y muestra el mensaje apropiado en el control de etiqueta: If Char.IsDigit(e.KeyChar) = True Then Label1.Text = "Usted a presionado una tecla numerica" Else If Char.IsLetter(e.KeyChar) = True Then Label1.Text = "usted ha presionadao una tecla de caracter" End If End If Modifique el ejercicio para cdigo ascii Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress Label1.Text = Asc(e.KeyChar) End Sub Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp Label1.Text = e.KeyCode End Sub

Ejercicio disear una aplicacion como la mostrda al ingresar el ratn a los botones prende el led y al salir se apaga

Public Class Form1 Private Sub prender(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRojo.MouseEnter, btnVerde.MouseEnter, btnAzul.MouseEnter Select Case sender.text Case "ROJO" : sender.Backcolor = Color.FromArgb(255, 100, 100) Case "VERDE" : sender.Backcolor = Color.FromArgb(125, 255, 125) Case "AZUL" : sender.Backcolor = Color.FromArgb(125, 125, 255) End Select

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz End Sub

-55-

Private Sub Apagar(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAzul.MouseLeave, btnRojo.MouseLeave, btnVerde.MouseLeave Select Case sender.text Case "ROJO" : sender.Backcolor = Color.FromArgb(125, 0, 0) Case "VERDE" : sender.Backcolor = Color.FromArgb(0, 125, 0) Case "AZUL" : sender.Backcolor = Color.FromArgb(0, 0, 200) End Select End Sub End Class Un controlador de eventos que maneja varios controles Ejemplo calculadora elemental Disee el formulario de la siguiente manera

Cambie sus propiedades de acuerdo al siguiente cuadro Control Label1 Label2 Label3 TextBox1 Propiedad Text Text Text Name Text TextBox2 Name Text TextBox3 Name Text Button1 Name Text Button2 Name Text Button3 Name Text Button4 Name Text Valor MNICALCULADORA ELEMENTAL = txtOper1 2 txtOper2 3 txtResult btnSuma + btnResta btnMultiplicacion * btnDivision /

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz Agregue el siguiente cdigo Public Class Events Dim n1 As Single, n2 As Single, res As Single Private Sub BtnSuma_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSuma.Click n1 = Val(TxtOper1.Text) n2 = Val(TxtOper2.Text) res = n1 + n2 TxtResultado.Text = res Label2.Text = "+" End Sub Private Sub BtnResta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnResta.Click n1 = Val(TxtOper1.Text) n2 = Val(TxtOper2.Text) res = n1 - n2 TxtResultado.Text = res Label2.Text = "-" End Sub

-56-

Private Sub BtnMultiplicacion_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnMultiplicacion.Click n1 = Val(TxtOper1.Text) n2 = Val(TxtOper2.Text) res = n1 * n2 TxtResultado.Text = res Label2.Text = "*" End Sub Private Sub BtnDivision_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDivision.Click n1 = Val(TxtOper1.Text) n2 = Val(TxtOper2.Text) res = n1 / n2 TxtResultado.Text = res Label2.Text = "/" End Sub End Class Ejecute el programa y vera el siguiente resultado

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-57-

Nota. Escriba el cdigo para el boton suma y para los demas botones solo modifique la parte de res=n1+n2 y label2.text=+ a la correspondiente operacin( -,*./) Manejo de varios controles con un solo procedimiento Modifique el cdigo para con un solo procedimiento de evento maneje los cuatro botones Public Class Form1 Dim n1 As Single, n2 As Single, res As Single Private Sub Operacion(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSuma.Click, BtnResta.Click, BtnMultiplicacion.Click, BtnDivision.Click n1 = Val(TxtOper1.Text) n2 = Val(TxtOper2.Text) Select Case sender.text Case "+" : res = n1 + n2 Case "-" : res = n1 - n2 Case "*" : res = n1 * n2 Case "/" : res = n1 / n2 End Select TxtResultado.Text = res Label2.Text = sender.text End Sub End Class Agrega las funciones de facgtorial, potenica residuo y otras a la calculadora Al entrar el mouse cambia de color amarillo, al salir recupera su color, al hacer clik sigue haciendo las operaciones

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-58-

Su codigo del formualrio es Public Class Form1 Dim n1 As Single, n2 As Single, res As Single Dim colorAntiguo As Color Private Sub Operacion(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSuma.Click, btnResta.Click, btnMultiplicacion.Click, btnDivision.Click n1 = Val(txtOper1.Text) n2 = Val(txtOper2.Text) Select Case sender.text Case "+" : res = n1 + n2 Case "-" : res = n1 - n2 Case "*" : res = n1 * n2 Case "/" : res = n1 / n2 End Select txtResultado.Text = res Label2.Text = sender.text End Sub Private Sub Ingresaraton(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSuma.MouseEnter, btnResta.MouseEnter, btnMultiplicacion.MouseEnter, btnDivision.MouseEnter colorAntiguo = sender.backcolor sender.backcolor = Color.FromArgb(255, 255, 0) End Sub Private Sub SaleRaton(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSuma.MouseLeave, btnResta.MouseLeave, btnMultiplicacion.MouseLeave, btnDivision.MouseLeave sender.backcolor = colorAntiguo End Sub Private Sub Form1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove Me.Text = "X=" & e.X & "Y=" & e.Y & "Boton Presionado" & e.Button.ToString End Sub

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown TextBox2.Text = e.KeyCode End Sub Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress If Asc(e.KeyChar) = 13 Then TextBox2.Text = TextBox1.Text End If End Sub End Class Ejercicio 1. Crear dos controles en tiempo de Ejecucion (pag 132) Public Class Form1 Inherits System.Windows.Forms.Form Private lblNombre As New Label() Private txtNombre As New TextBox() Private WithEvents btnAceptar As New Button() Private WithEvents btnCancelar As New Button()

-59-

Private Sub CrearControles(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load With lblNombre .Text = "Nombre:" .AutoSize = True .Location = New Point(30, 40) End With With txtNombre .Width = 150 .Location = New Point(100, 35) End With With btnAceptar .Text = "&Aceptar" .Location = New Point(30, 100) .BackColor = Color.Aqua End With With btnCancelar .Text = "&Cancelar" .Location = New Point(180, 100) End With Me.Controls.Add(lblNombre) Me.Controls.Add(txtNombre) Me.Controls.Add(btnAceptar) Me.Controls.Add(btnCancelar) AddHandler btnAceptar.Click, AddressOf Saludo AddHandler btnCancelar.Click, AddressOf Salir End Sub Private Sub Saludo(ByVal sender As Object, ByVal e As EventArgs) MessageBox.Show("Hola " & txtNombre.Text, "Saludo", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz End Sub Private Sub Salir(ByVal sender As Object, ByVal e As EventArgs) Me.Close() End Sub End Class

-60-

Importante en controlador de eventos en tiempo de ejecucion Nota. No disee ningn control la aplicacin lo crea solo Elabore la siguiente aplicacin

Cuyo codigo es Public Class Form1 Private Sub BtnSaludo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSaludo.Click TextBox1.Text = "HOLA MUNDO" End Sub End Class Vaya al explorador de soluciones luego mostrar todas las soluciones

Aparecer lo siguiente

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-61-

<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ Partial Class Form1 Inherits System.Windows.Forms.Form 'Form reemplaza a Dispose para limpiar la lista de componentes. <System.Diagnostics.DebuggerNonUserCode()> _ Protected Overrides Sub Dispose(ByVal disposing As Boolean) Try If disposing AndAlso components IsNot Nothing Then components.Dispose() End If Finally MyBase.Dispose(disposing) End Try End Sub 'Requerido por el Diseador de Windows Forms Private components As System.ComponentModel.IContainer 'NOTA: el Diseador de Windows Forms necesita el siguiente procedimiento 'Se puede modificar usando el Diseador de Windows Forms. 'No lo modifique con el editor de cdigo. <System.Diagnostics.DebuggerStepThrough()> _ Private Sub InitializeComponent() Me.BtnSaludo = New System.Windows.Forms.Button Me.TextBox1 = New System.Windows.Forms.TextBox Me.SuspendLayout() ' 'BtnSaludo ' Me.BtnSaludo.Location = New System.Drawing.Point(46, 100) Me.BtnSaludo.Name = "BtnSaludo" Me.BtnSaludo.Size = New System.Drawing.Size(158, 42) Me.BtnSaludo.TabIndex = 0 Me.BtnSaludo.Text = "Saludar" Me.BtnSaludo.UseVisualStyleBackColor = True ' 'TextBox1 ' Me.TextBox1.Location = New System.Drawing.Point(50, 30) Me.TextBox1.Name = "TextBox1" Me.TextBox1.Size = New System.Drawing.Size(153, 22)

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz Me.TextBox1.TabIndex = 1 ' 'Form1 ' Me.AutoScaleDimensions = New System.Drawing.SizeF(8.0!, 16.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(282, 255) Me.Controls.Add(Me.TextBox1) Me.Controls.Add(Me.BtnSaludo) Me.Name = "Form1" Me.Text = "Form1" Me.ResumeLayout(False) Me.PerformLayout() End Sub Friend WithEvents BtnSaludo As System.Windows.Forms.Button Friend WithEvents TextBox1 As System.Windows.Forms.TextBox End Class Cree un nuevo formulario y vea su cdigo del siseo que <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ Partial Class Form1 Inherits System.Windows.Forms.Form 'Form reemplaza a Dispose para limpiar la lista de componentes. <System.Diagnostics.DebuggerNonUserCode()> _ Protected Overrides Sub Dispose(ByVal disposing As Boolean) Try If disposing AndAlso components IsNot Nothing Then components.Dispose() End If Finally MyBase.Dispose(disposing) End Try End Sub 'Requerido por el Diseador de Windows Forms Private components As System.ComponentModel.IContainer 'NOTA: el Diseador de Windows Forms necesita el siguiente procedimiento 'Se puede modificar usando el Diseador de Windows Forms. 'No lo modifique con el editor de cdigo. <System.Diagnostics.DebuggerStepThrough()> _ Private Sub InitializeComponent() components = New System.ComponentModel.Container() Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.Text = "Form1" End Sub End Class Reemplace con el codigo anterior y vera los controles

-62-

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz Cargar una imagen similar a la pagina 150

-63-

Imports System.Drawing Imports System.Drawing.Drawing2D Public Class Form1 Dim nombre As String Dim COLOR As Color Dim fuente As Font

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-64-

Private Sub btnCargarImagen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCargarImagen.Click OpenFileDialog1.ShowDialog() nombre = OpenFileDialog1.FileName PictureBox1.Load(nombre) Label1.Text = nombre End Sub Private Sub btncambiarColor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btncambiarColor.Click ColorDialog1.ShowDialog() COLOR = ColorDialog1.Color PictureBox1.BackColor = COLOR Label1.Text = nombre End Sub Private Sub CambiarFuente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CambiarFuente.Click FontDialog1.ShowDialog() fuente = FontDialog1.Font Label1.Font = fuente End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged If CheckBox1.Checked = True Then PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage Else PictureBox1.SizeMode = PictureBoxSizeMode.Normal End If End Sub End Class Trabajo con cuadro de lista cuadros combinados y cajas de dialogo Graba lo modificado en el grafico

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz Public Class Form2 Dim oPen As Pen ' para la linea ( color rojo con 1 de grosor ) Dim Graficos As Graphics Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'lo modifica con unas rallas Dim i As Integer For i = 0 To Me.Height Step 15 Graficos.DrawLine(oPen, 10, 10, Me.Width, i) Next ' lo guarda en gif en el disco c: PictureBox1.Image.Save("e:\archivo.bmp", System.Drawing.Imaging.ImageFormat.Bmp) End Sub Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove Me.Text = "Coordenadas X = " & e.X & ", Y = " & e.Y Dim rec As New Rectangle(e.X - 5, e.Y - 5, 10, 10) Graficos.FillEllipse(Brushes.Blue, rec) PictureBox1.Refresh() End Sub Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load oPen = New Pen(Color.Red, 1) Graficos = Graphics.FromImage(PictureBox1.Image) End Sub End Class Calcular valores de una funcin usando el control datagridview Public Class Form1 Dim ncol As Integer = 3 Dim nfilas As Integer = 10 Dim x As Single Dim y As Single Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click DataGridView1.ColumnCount = ncol DataGridView1.RowCount = nfilas + 1 For col = 0 To ncol - 1 DataGridView1.Columns(col).Width = 30 Next col For fila = 0 To nfilas DataGridView1.Rows(fila).Height = 20 DataGridView1.Rows(fila).Cells(0).Value = fila Next fila

-65-

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz DataGridView1.Rows(0).Cells(0).Value = "Pto" DataGridView1.Rows(0).Cells(1).Value = "X" DataGridView1.Rows(0).Cells(2).Value = "Y" For x = 1 To 10 y = Math.Pow(x, 2) DataGridView1.Rows(x).Cells(1).Value = x DataGridView1.Rows(x).Cells(2).Value = y Next End Sub End Class

-66-

Ejemplo de formulario modal y no modal

Sus codigo es Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim objeto As Form2 = New Form2 objeto.Show() End Sub

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim objeto As Form2 = New Form2 objeto.ShowDialog() End Sub End Class Y vea la diferencia EJEMPLO DE APLICACIN COMPLETA CON MENUS Y BARRA DE HERRAMIENTAS

-67-

El ejemplo trata sobre un Editor de documentos similar al Wordpad , pero con funciones bsicas . Este ejemplo trabaja con dos formularios ; el primero es un formulario MDI padre que tiene un men principal , barras de herramientas y barra de estado; el segundo formulario es la base para crear formularios MDI hijos que representan un documento donde pueda escribir textos enriquecidos. Formato rtf

1. Crear un Aplicacin Windows en Visual Basic .NET llamado FormularioMDI

2. En el Diseador de formularios Windows, arrastrar 1 control MenuStrip1, 1 ToolStrip1,1 StatusStrip1, 1 OpenFileDialog, 1 SaveFileDialog, 1 ColorDialog, 1 FontDialog, 1 Timer , luego configurar las propiedades tal como se muestra en el siguiente cuadro: Objeto Form1 MenuStrip1 OpenFileDialog 1 SaveFileDialog1 ColorDialog1 FontDialog1 Propiedad isMdiContainer Text Name Name Name Name Name Valor True Editor de Documentos v 1.0 MenuStrip1 OpenFileDialog1 SaveFileDialog1 ColorDialog1 FontDialog1

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz Timer1 ToolStrip1 StatusStrip1 Name Name name Timer1 ToolStrip1 StatusStrip1

-68-

3. Seleccione el control MenuStrip1 y en la parte superior donde dice Escriba

aqui, Escriba directamente los textos del Men y configure sus propiedades tal como se muestra en el siguiente cuadro: Objeto MenuItem1 MenuItem11 MenuItem12 MenuItem13 MenuItem14 MenuItem15 MenuItem2 MenuItem21 MenuItem22 MenuItem23 MenuItem3 MenuItem31 MenuItem32 MenuItem4 MenuItem41 MenuItem411 MenuItem412 MenuItem413 Propiedad Name Text Name ShortCut Text Name ShortCut Text Name ShortCut Text Name Text Name ShortCut Text Name Text Name ShortCut Text Name ShortCut Text Name ShortCut Text Name Text Name Text Name Text Name Text Name Text Name Text Name Text Name Valor mnuArchivo &Archivo mnuNuevo CtrlN &Nuevo mnuAbrir CtrlA &Abrir mnuGuardar CtrlG &Guardar mnuLinea1 mnuSalir CtrlS &Salir mnuEdicin &Edicin mnuCopiar CtrlC &Copiar mnuCortar CtrlX Co&rtar MnuPegar CtrlV &Pegar mnuFormato &Formato mnuFuente Fuente mnuFondo Color de Fondo mnuUtilitario &Utilitarios mnuWindows Windows mnuCalculadora Calculadora MnuBloc Bloc de Notas mnuExplorador

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz MenuItem42

-69-

Text Explorador Name MnuOffice Text Office MenuItem421 Name MnuWord Text Word MenuItem422 Name MnuExcel Text Excel MenuItem423 Name mnuInternet Text Internet Explorer MenuItem5 Name mnuVentana Text &Ventana MenuItem51 Name Cascada Tag 0 Text Cascada MenuItem52 Name mnuMHorizontal Tag 1 Text Mosaico Horizontal MenuItem53 Name mnuMVertical Tag 2 Text Mosaico Vertical MenuItem54 Name mnuOIcons Tagr 3 Text Organizar Iconos MenuItem55 Name MnuLinea2 Text MenuItem56 Name MnuListar MdiList True Text Listar Ventanas Para cambiar el nombre de cada men hacer clic en menu strip y luego editar elementos

Aparece el siguiente cuadro

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-70-

Elija DropDownItems

Hay podria cambiar los nombres Tambien podria cambiar con el cuadro de propiedades

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-71-

4. Seleccione el control ToolStrip1 y Clic al botn de abrir dilogo de la propiedad

items, luego aadir nueve botones y configurar sus propiedades , tal como se meustran en el siguiente cuadro:

En image escoger

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-72-

Objeto ToolBarButton1

ToolBarButton2

ToolBarButton3

ToolBarButton4 ToolBarButton5

ToolBarButton6

ToolBarButton7

ToolBarButton8

Propiedad Name Image ToolTipText Tag Name ImageIndex ToolTipText Tag Name ImageIndex ToolTipText Tag Name Style Tag Name ImageIndex ToolTipText Tag Name ImageIndex ToolTipText Tag Name ImageIndex ToolTipText Tag Name

Valor tbbNuevo \bitmaps\Tlbr_W95\New.bmp Nuevo Nuevo tbbAbrir \bitmaps\Tlbr_W95\Open.bmp Abrir Abrir tbbGuardar Save.bmp Guardar Guardar tbbSeparador1 Separator Separator1 tbbCopiar \bitmaps\Tlbr_W95\Copy.bmp Copiar Copiar tbbCortar \bitmaps\Tlbr_W95\Copy.bmp Cortar Cortar tbbPegar \bitmaps\Tlbr_W95\paste.bmp Pegar Pegar tbbSeparador2

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz Style Tag Name ImageIndex ToolTipText Tag Separator Separator2 tbbSalir \bitmaps\Tlbr_W95\redo.bmp6 Salir Salir

-73-

ToolBarButton9

Al final debe quedar as

5. Seleccione el control StatusStrip1 y Clic al botn de editar elementos luego

aadir tres paneles y configurar sus propiedades , tal como se muestran en el siguiente cuadro:

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz Objeto Propiedad StatusBarPanel1 Name Icon Width StatusBarPanel2 Name Text StatusBarPanel3 Name Valor sbpNombre \Icons\Writing\Book01A.ico sbpMayuscula CAPS sbpFechaHora

-74-

6. Aadir un segundo formulario; del men Project elegir Add Windows Form ,

escribir como nombre frmDocumento y clic Open. 7. Seleccionar el formulario frmDocumento arrastrar un control ContextMenu y 1 RichTextBox, luego configurar sus propiedades, tal como se muestra en el siguiente cuadro. Propiedad Valor Text Documento Name ContextMenuStrip2 Name RichTextBox1 ContextMenu ContextMenuStrip Dock Fill 8. El diseo del formulario deberia quedar as Objeto Form2 ContextMenuStrip2 RichTextBox1

9. Regresar al formulario frmEditor y en la ventana explorador de soluciones dar

click en el botn View Code copiar el siguiente cdigo Codigo de formulario Imports System.IO 'Usar Path Public Class Form1 Private intNumDoc As Integer

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz Private Sub IniciarConfiguracion(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Clipboard.SetDataObject("") sbpFechaHora.Text = Now.ToLongTimeString sbpFechaHora.ToolTipText = Now.ToLongDateString End Sub Private Sub NuevoDocumento(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuNuevo.Click intNumDoc = intNumDoc + 1 Dim X As New frmDocumento() X.MdiParent = Me X.Text = "Documento " & intNumDoc.ToString sbpNombre.Text = "Documento " & intNumDoc.ToString X.Show() End Sub Private Sub AbrirDocumento(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuAbrir.Click With OpenFileDialog1 'Dialogo de Abrir .Title = "Abrir Documento rtf" .Filter = "Documento rtf|*.rtf" If .ShowDialog = DialogResult.OK Then If Me.MdiChildren.Length = 0 Then MnuNuevo.PerformClick() Dim rtb As RichTextBox = Me.ActiveMdiChild.Controls(0) rtb.LoadFile(.FileName, RichTextBoxStreamType.RichText) Me.ActiveMdiChild.Text = Path.GetFileName(.FileName) sbpNombre.Text = Path.GetFileName(.FileName) End If End With End Sub

-75-

Private Sub GuardarDocumento(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuGuardar.Click If Me.MdiChildren.Length > 0 Then With SaveFileDialog1 'Dialogo de Guardar .Title = "Guardar Documento rtf" .Filter = "Documento rtf|*.rtf" If .ShowDialog = DialogResult.OK Then Dim rtb As RichTextBox = Me.ActiveMdiChild.Controls(0) rtb.SaveFile(.FileName, RichTextBoxStreamType.RichText) Me.ActiveMdiChild.Text = Path.GetFileName(.FileName) sbpNombre.Text = Path.GetFileName(.FileName) End If End With End If End Sub Private Sub Salir(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuSalir.Click Me.Close() End Sub

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-76-

Private Sub CopiarTexto(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuCopiar.Click If Me.MdiChildren.Length > 0 Then Dim rtb As RichTextBox = Me.ActiveMdiChild.Controls(0) If rtb.SelectedText <> "" Then Clipboard.SetDataObject(rtb.SelectedText) End If End Sub Private Sub CortarTexto(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuCortar.Click If Me.MdiChildren.Length > 0 Then Dim rtb As RichTextBox = Me.ActiveMdiChild.Controls(0) If rtb.SelectedText <> "" Then Clipboard.SetDataObject(rtb.SelectedText) rtb.SelectedText = "" End If End If End Sub Private Sub PegarTexto(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuPegar.Click If Me.MdiChildren.Length > 0 Then Dim rtb As RichTextBox = Me.ActiveMdiChild.Controls(0) rtb.SelectedText = Clipboard.GetDataObject.GetData("Text") End If End Sub Private Sub CambiarFuente(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuFuente.Click If Me.MdiChildren.Length > 0 Then With FontDialog1 'Dialogo de Fuente .ShowColor = True If .ShowDialog() = DialogResult.OK Then Dim rtb As RichTextBox = Me.ActiveMdiChild.Controls(0) rtb.Font = .Font rtb.ForeColor = .Color End If End With End If End Sub Private Sub CambiarColorFondo(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuFondo.Click If Me.MdiChildren.Length > 0 Then With ColorDialog1 'Dialogo de Colores If .ShowDialog = DialogResult.OK Then Dim rtb As RichTextBox = Me.ActiveMdiChild.Controls(0) rtb.BackColor = .Color End If End With End If End Sub

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz Private Sub AbrirCalculadora(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuCalculadora.Click Process.Start("Calc.exe") End Sub Private Sub AbrirBlocNotas(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuBlocDeNotas.Click Process.Start("Notepad.exe") End Sub Private Sub AbrirExplorador(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuExplorador.Click Process.Start("Explorer.exe") End Sub Private Sub AbrirWord(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuWord.Click Process.Start("Winword.exe") End Sub Private Sub AbrirExcel(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuExcel.Click Process.Start("Excel.exe") End Sub Private Sub INTERNET(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuExcel.Click Process.Start("IEXPLORE.EXE") End Sub Private Sub AbrirInternet(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuInternet.Click Process.Start("IExplore.exe") End Sub Private Sub PresentarVentanas(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuCascada.Click, mnuMHorizontal.Click, mnuMVertical.Click, mnuOIconos.Click Me.LayoutMdi(sender.TAG) End Sub

-77-

Private Sub MostrarNombre(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.MdiChildActivate If Me.ActiveMdiChild Is Nothing Then sbpNombre.Text = "" Else sbpNombre.Text = Me.ActiveMdiChild.Text End If End Sub Private Sub VerHora(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick sbpFechaHora.Text = Now.ToLongTimeString End Sub

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-78-

Private Sub ToolStrip1_ItemClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles ToolStrip1.ItemClicked Select Case e.ClickedItem.Tag Case "Nuevo" MnuNuevo.PerformClick() Case "Abrir" MnuAbrir.PerformClick() Case "Guardar" MnuGuardar.PerformClick() Case "Copiar" mnuCopiar.PerformClick() Case "Cortar" mnuCortar.PerformClick() Case "Pegar" MnuPegar.PerformClick() Case "Salir" mnuSalir.PerformClick() End Select End Sub Private Sub ListarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Listar.Click If Me.ActiveMdiChild Is Nothing Then sbpNombre.Text = "" Else sbpNombre.Text = Me.ActiveMdiChild.Text End If End Sub End Class Ejecute el programa . la aplicacin debera quedar asi

Nota clic derecho en el men strip y clic en insertar elementos estndar

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-79-

Y automticamente se inserta los elementos estndar

Lo mismo puede hacer con toolstrip y automticamente adiciona los controles estndar

Al presionar editar elementos aparece el cuadro

Guia de prcticas de SI2012 A \ 5 Aplicaciones Windows Forms \I. Vliz

-80-

Que nos permite editar los elementos Se debe presentar en la siguiente clase de laboaratorio las practicas se calificaran sobre 15 este ejercicio vales 5 puntos PRACTICAS DE LABORATORIO DE SISTEMAS DE INFORMACION 27 DE JULIO DEL 2012 1. Elaboracin de una aplicacin de Windows Form calculadora elemental
2. Eventos clic, mousedown .mouseenter , mousewleave, keydow keypressed ,etc

en la misma calculadora pg. 310 al 315 3. Crear controles en tiempo de ejecucin 314 4. Mostrar el cdigo de diseo y recuperar el diseo de un formulario 314 al 317
5. Cuadros de dialogo y grficos pago 318 6. Formularios MDI ejercicio de la pagina 281 al 299 7. Propiedades left, rigth width ,heigth, dock , anchor etc de los controles

8. Otros controles como cuadros de lista, botn de opciones, cuadros combinados, controles de grupo, etc. 9. Revisin del formulario MDI pago 322 al 335

Você também pode gostar