Módulo_7_Aplicaciones Windows con VB

285
APLICACIONES WINDOWS CON VB.NET © élogos Conocimiento, S.L. Madrid 2009. Todos los derechos de Propiedad Intelectual e Industrial de esta obra pertenecen a élogos Conocimiento, S.L.

description

Características de las aplicaciones Windows, Programación basada en eventos, Formularios y controles Windows, Estudio de los principales controles de Windows, Formualarios MDI, Distribución de aplicaciones Windows, Trabajando con controles. Clases de los principales controles, Práctica.

Transcript of Módulo_7_Aplicaciones Windows con VB

Page 1: Módulo_7_Aplicaciones Windows con VB

APLICACIONES WINDOWS CON

VB.NET

© élogos Conocimiento, S.L. Madrid 2009. Todos los derechos de Propiedad Intelectual e Industrial de esta obra pertenecen a élogos Conocimiento, S.L.

Page 2: Módulo_7_Aplicaciones Windows con VB

CARACTERISTICAS DE LAS APLICACIONES WINDOWS

Bueno, aquí estamos de nuevo y por fin llegamos a la parte interesante. Todo lo anterior es la base necesariapara poder manejarte adecuadamente con lo que viene a partir de ahora. Se acabó lo de las aplicaciones deconsola, salvo para cosas muy específicas, y que harás muy de tarde en tarde. Ahora empezamos primero conlas aplicaciones de escritorio.

Éstas están basadas en los formularios Windows, casi como lo hacía Visual Basic 6, pero con muchísima másfuncionalidad en ellos, primero por estar totalmente orientados a objetos y segunda, porque con el .NETFramework se ha intentado, y yo diría que conseguido, que las aplicaciones de escritorio basadas enformularios Windows puedan llegar a ser indistinguibles de las aplicaciones Web, si lo deseas.

De esta forma, se puede desarrollar una aplicación pensando en todos los usuarios de la empresa que lapuedan llegar a utilizar, desde cualquier tipo de soporte y plataforma, PC de sobremesa, portátil,Smartphone, PDA, Explorador de Internet/Intranet,… etc, y lo que falte por venir.

Por supuesto, eres totalmente libre para seguir dando a tus aplicaciones de escritorio el aspecto tradicional,lo que no podrás evitar es el hacer uso de toda la funcionalidad que hay por detrás, en cuanto lo pruebes,será difícil que lo dejes, no es una droga, pero sus efectos lo parecen.

Por si no eres ya un desarrollador experimentado, te explicaré que las aplicaciones de escritorio son aquellasque ejecutas en local, en tu máquina, que te presentan la típica ventana Windows, con los botones deminimizar, maximizar y cerrar en la esquina superior derecha, normalmente, una barra de menú arriba conlas opciones disponibles y, cuando el desarrollador se ha sentido artista, una barra de botones con las opcionesmás comunes. ¿Te suena? O sea, casi cualquier aplicación para Windows tradicional.

Estas aplicaciones raramente acceden a datos o tienen impacto sobre nada que no esté localizado en lapropia máquina, y en los entornos principalmente compartidos del mundo actual, esto es casi ostracismo.

Es imperativo disponer de unas herramientas de programación que nos permitan desarrollar estos programas,por supuesto, es probable que siempre vayan a existir, pero, sobre todo, debemos poder desarrollar, de unaforma fácil y cómoda, programas orientados al exterior. Como mínimo debe ser excepcionalmente fácilacceder a cualquier tipo de origen de datos, ya sea a la base de datos corporativa, situada en una granja deservidores o a cualquier ubicación remota, mediante la Web.

El formulario no es más que el “lienzo” sobre el que “dibujar” tu aplicación mediante los controles. Loscuales son, cualquiera de las cosas que puedas poner en un formulario. Es decir toda caja de texto, botón,lista,….etc, todo son controles de la colección Controls del formulario ¿recuerdas que ya hablamos de elloal principio del tema de POO?

Los controles tienen atributos, propiedades, métodos y eventos ¿te suena verdad? Y eso no es porcasualidad, es la orientación a objetos de la que llevamos un tiempo hablando. La gran mayoría de

APLICACIONES WINDOWS CON VB.NET

2

Page 3: Módulo_7_Aplicaciones Windows con VB

estos atributos, propiedades, métodos y eventos son accesibles mediante código, además de mediante elinterfaz gráfico que provee el IDE de Visual Studio. Esto permite crear o modificar los controles, su aspectoy comportamiento en tiempo de ejecución, dando a las aplicaciones basadas en formularios Windows lamisma funcionalidad que las aplicaciones basadas en Web Forms, que es el nombre de los que se implementanen las aplicaciones ASP.NET, la parte Web del .NET Framework.

Ya sabes que no te puedes librar de los ejemplos, ya que son el mejor medio de ver en la práctica toda lateoría expuesta. Por lo tanto aquí viene el correspondiente a esta introducción a las características de lasaplicaciones de formularios Windows.

Como ya hicimos el ejemplo clásico del “Hola Mundo” como aplicación de consola, no tendrás ningúnproblema con los conceptos de este ejemplo. En efecto, otro “Hola Mundo”, aunque vamos a intentar quesea un poquito más complejo, pero sin pasarnos, es tu primer programa de escritorio con .NET Framework yno quiero que te asustes demasiado, ya llegará la hora de complicar las cosas.

Lo primero, a la hora de crear el nuevo proyecto, habrá que hacer una selección diferente a las que hasestado haciendo hasta ahora.

Y darle un nombre adecuado.

Una vez aceptado lo anterior, el sistema te mostrará la siguiente pantalla.

APLICACIONES WINDOWS CON VB.NET

3

Page 4: Módulo_7_Aplicaciones Windows con VB

Así, en frío, no dice gran cosa ¿verdad? Pero si le damos al botón de ver código, y ampliamos los elementosdel explorador de soluciones, la cosa cambia un poco ¿no te parece?

APLICACIONES WINDOWS CON VB.NET

4

Page 5: Módulo_7_Aplicaciones Windows con VB

Resulta que, por detrás, el sistema ya se encarga, mediante las plantillas que tiene definidas internamente,de generar un montón de código, para que no tengas que hacerlo, tú. Lo cual resulta sumamente gratificante,al ahorrarnos un montón de tiempo picando código repetitivo y poco estimulante.

Si abrimos el archivo del código asociado al formulario, y eso que aún no hemos puesto ningún control en él,veremos que la cosa tiene su miga.

Lo primero que te debería llamar la atención es la declaración de la clase, tiene un calificador nuevo, Partial,lo comentamos allá por el pleistoceno, cuando empezábamos con esto del .NET Framework, pero no creo quelo recuerdes. Sirve para separar las funcionalidades del código de los formularios. ¿¿?? En castellano, el códigode gestión de los controles, el dibujo en pantalla, el refresco,…etc Todo eso que es tedioso y que no nosaporta nada a nosotros, está separado en un archivo gestionado por el propio IDE de Visual Studio, ynormalmente es mejor no tocarlo, ya que el sistema lo hace muy bien solito y si metemos mano es fácil quelo estropeemos. El código que desarrollemos para implementar la “lógica de negocio”, es decir, que elprograma haga lo que queremos que haga, irá en otro archivo, en el cuál sí hemos de picar el código (demomento está vacío). A la hora de generar el proyecto, ya se encargará el código de asociar las distintas“partes” de cada clase para generar un ejecutable completo. Una solución elegante ¿no te parece?

Bueno pues, vamos a entrar en faena, lo primero, volver a la ventana del formulario y mostrar la barra deherramientas, de momento la he dejado con todo cerrado, para que veas todas las categoríasdisponibles, después abriré la categoría “Common controls” que contiene los controles que se utilizanhabitualmente en los formularios Windows.

APLICACIONES WINDOWS CON VB.NET

5

Page 6: Módulo_7_Aplicaciones Windows con VB

¡Hay unas cuantas! Ahora los controles para formularios Windows.

Como puedes ver, bueno siempre y cuando tengas buena vista, pero míralo en tu equipo, que siempretendrás mejor resolución y posiblemente la instalación en Castellano, en vez de Inglés como la tengoyo, hay un amplio surtido de controles insertables en tus formularios.

APLICACIONES WINDOWS CON VB.NET

6

Page 7: Módulo_7_Aplicaciones Windows con VB

Normalmente te bastará con estos, pero en el caso de necesitar más, puedes ir abriendo el resto decategorías, verás que la lista se alarga bastante.

Si tampoco encuentras así el control que necesitas, siempre puedes ir a “Herramientas -> Seleccionarcomponentes de la barra de herramientas (Tools -> Choose Toolbox Items)”, que te mostrará el cuadro dediálogo siguiente:

Como puedes apreciar por el número de pestañas y el tamaño de la barra de desplazamiento en la visible,la lista es interminable. Cada línea que elijas aquí se traducirá en uno o más controles añadidos a la barrade herramientas.

Si aún no encuentras lo que necesitas, aunque dudo que no esté, sólo será que no lo encuentras, puedesdesarrollar tus propios controles y añadirlos a la barra de herramientas. Aunque creo que, de momento, noestamos todavía en esa fase.

Bromas aparte, vamos a empezar a utilizar esta famosa barra de herramientas. Para insertar un control enel formulario tienes, que raro, varias formas de hacerlo:

- Puedes hacer doble clic sobre el nombre del control en la barra de herramientas y el IDE se encargaráde colocarlo, con tamaño estándar, en la ubicación predeterminada en el formulario.

- También puedes pinchar el nombre del control en la barra de herramientas y arrastrarlo hasta laposición que desees en el formulario.

Utiliza la versión que te sea más cómoda y coloca un control Label en el formulario.

APLICACIONES WINDOWS CON VB.NET

7

Page 8: Módulo_7_Aplicaciones Windows con VB

Este control sirve para contener, como su nombre en inglés indica, una etiqueta de texto. Puede parecetonto generar un control sólo para esto, pero de esta forma goza de las ventajas ya comentadas de laorientación a objetos y podrás modificar sus atributos y propiedades mediante código.

Con la opción del doble clic aparecerá como sigue:

Es eso pequeñito que pone Label1, es el nombre del control y el valor de su texto, de momento.

Vamos a modificar alguna de sus propiedades, más que nada para que sea un poco más visible y nos diga algo,en vez de “Label1”. Para ello hemos de acceder a su ventana de propiedades y, como siempre, tienes variasformas de hacerlo:

- Pulsar el botón de acceso directo a las propiedades del objeto seleccionado.

- Botón derecho sobre el control y Propiedades.

- Menú Ver y ventana propiedades.

En cualquier caso, verás lo siguiente:

APLICACIONES WINDOWS CON VB.NET

8

Page 9: Módulo_7_Aplicaciones Windows con VB

Para ser un simple control Label para contener una etiqueta, tiene unas cuantas propiedades ¿no crees?

Y eso que te falta ver los eventos asociados, pero no adelantemos acontecimientos.

Puedes ver las propiedades, tal y como están aquí, por orden alfabético o, si lo prefieres, ordenadosalfabéticamente por categorías, pinchando el correspondiente botón, como más cómodo te sea.

Bueno pues, vamos a cambiarle el texto a “Hola de nuevo Mundo”, tal y como reza el nombre del proyecto,cambiando el valor de su propiedad Text.

Y, de paso, vamos a cambiar el tamaño de la letra, ya que actualmente es minúsculo, en la ventana estándarde selección de fuente que aparece si pinchas en los tres puntos del botón que aparecerá cuando pinchesencima del nombre de la fuente puedes poner 22.

En la propiedad siguiente Forecolor puedes cambiar el color del texto.

Quedando tal como te muestro.

APLICACIONES WINDOWS CON VB.NET

9

Page 10: Módulo_7_Aplicaciones Windows con VB

Ya se ve algo mejor.

Si ahora le das a F5, se ejecutará el formulario y te mostrará el Label que tenemos.

Lo puedes cerrar con el botón correspondiente en la esquina superior derecha.

APLICACIONES WINDOWS CON VB.NET

10

Page 11: Módulo_7_Aplicaciones Windows con VB

Vamos a añadir un control TextBox, que sirve para la introducción de texto por el usuario ycambiaremos sus propiedades de la siguiente forma:

- Text: “Dime tu nombre”

- Font: de 18

- Size-Width: 270

Y también, ya puestos, añadamos un control Button y fijaremos su siguiente propiedad:

Text: “Aceptar”

Hasta aquí fácil ¿no? Pues se tiene que complicar un poquito, para que el botón haga algo es necesariodecírselo. ¿Cuándo? Pues cuando el usuario lo pulse, es decir, haga clic sobre él. Esto se llama un evento, esdecir “algo” que sucede. Y para acceder a los eventos, para variar, hay varias formas. Para el clic del botónes muy fácil, haces doble clic sobre el control y ya pasas a la edición del código de la propiedad por defecto,en este caso Button1_Click, como puedes ver.

No te preocupes, ahora no, pero más adelante lo veremos en detalle, por ahora, asume que con estejeroglífico podemos hacer que la pulsación del botón tenga algún efecto.

Entre el Private Sub y el End Sub hay que codificar la siguiente línea:

Label1.Text = “Hola “ & TextBox1.Text

Y ya está, pulsa F5, teclea tu nombre en la caja de texto y pulsa el botón.

APLICACIONES WINDOWS CON VB.NET

11

Page 12: Módulo_7_Aplicaciones Windows con VB

Si todo ha ido bien debería salirte algo así.

EN RESUMEN

Los Windows.Forms son los objetos que nos permiten desarrollar aplicaciones de escritorio enel entorno .NET Framework.

Nos dan la misma funcionalidad que las aplicaciones Web, si lo deseamos.

Todo lo que se incluya en un formulario serán objetos de su colección Controls.

APLICACIONES WINDOWS CON VB.NET

12

Page 13: Módulo_7_Aplicaciones Windows con VB

PROGRAMACION BASADA EN EVENTOS

© élogos Conocimiento, S.L. Madrid 2009. Todos los derechos de Propiedad Intelectual e Industrial de esta obra pertenecen a élogos Conocimiento, S.L.

Page 14: Módulo_7_Aplicaciones Windows con VB

ÍNDICE

PROGRAMACION BASADA EN EVENTOS

1. Eventos y manejadores de eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3

2. Asociar los eventos a métodos de respuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8

3. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12

Page 15: Módulo_7_Aplicaciones Windows con VB

1. Eventos y manejadores de eventos

Definición

Como su propio nombre indica, un evento es “algo que ocurre”.

Todo objeto insertable en un formulario, incluido el propio formulario, sonobjetos y además de sus atributos, propiedades y métodos, tienen asociadosuna serie de eventos, es decir, ya tienen predefinido el poder controlar queha de hacer si ocurre una cosa concreta.

El código del evento

Te refrescamos el código del evento y manejador asociado al ejemplo de la unidad anterior.

Lo que tú has visto es lo siguiente:

Public Class Form1Private Sub Button1_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles Button1.ClickLabel1.Text = "Hola " & TextBox1.Text

End SubEnd Class

En este código hay unas cuantas cosas a ver:

1- Button1_Click es el nombre de la subrutina que se lanza al pulsar el botón Button1, lo cual vieneindicado al final con el Handles Button1.Click.

2- Los parámetros son sender, el nombre del botón concreto que ha lanzado el evento (luego verás quedistintos controles pueden lanzar el mismo evento) y el System.EventArgs, que son los parámetrosasociados al lanzamiento del evento, que en cada caso pueden variar.

PROGRAMACION BASADA EN EVENTOS

3

Page 16: Módulo_7_Aplicaciones Windows con VB

Clase Partial

Lo que aún no habías visto es la otra parte, la que el sistema genera sólo en la famosa clase Partialautomática, y digo lo de automática porque la genera con la plantilla del tipo de proyecto seleccionado, perotambién la va actualizando a medida que hacemos cosas con el formulario en diseño desde el IDE.

Te entresacamos la parte correspondiente al botón, su evento y el manejador.

<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _Partial Class Form1

Inherits System.Windows.Forms.Form

<System.Diagnostics.DebuggerStepThrough()> _Private Sub InitializeComponent()

Me.Button1 = New System.Windows.Forms.ButtonMe.SuspendLayout()

'Button1Me.Button1.Location = New System.Drawing.Point(97, 134)Me.Button1.Name = "Button1"Me.Button1.Size = New System.Drawing.Size(75, 23)Me.Button1.TabIndex = 2Me.Button1.Text = "Aceptar"Me.Button1.UseVisualStyleBackColor = True

Me.Controls.Add(Me.Button1)

Me.ResumeLayout(False)Me.PerformLayout()

End Sub

Friend WithEvents Button1 As System.Windows.Forms.ButtonEnd Class

PROGRAMACION BASADA EN EVENTOS

4

Page 17: Módulo_7_Aplicaciones Windows con VB

Declaración de la clase

La declaración de la clase la hemos resaltado, porque, aparte del Partial, ya comentado, verás que heredade la clase System.Windows.Forms.Form, y esto es lo que le da soporte para toda la funcionalidad asociada.

<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _Partial Class Form1

Inherits System.Windows.Forms.Form……

<System.Diagnostics.DebuggerStepThrough()> _Private Sub InitializeComponent()

Declaración del botón

La declaración del botón, tal y como habíamos comentado antes, es una instancia de la claseSystem.Windows.Forms.Button.

Me.Button1 = New System.Windows.Forms.Button

Me.SuspendLayout()

Asignaciones de propiedades al botón

'Button1'3 Me.Button1.Location = New System.Drawing.Point(97, 134)Me.Button1.Name = "Button1"Me.Button1.Size = New System.Drawing.Size(75, 23)Me.Button1.TabIndex = 2Me.Button1.Text = "Aceptar"Me.Button1.UseVisualStyleBackColor = True

PROGRAMACION BASADA EN EVENTOS

5

Page 18: Módulo_7_Aplicaciones Windows con VB

Asignación de propiedades al botón, como ves lo que hacemos en el IDE se traduce a código puro y duro, elmismo tipo de código que podemos utilizar, como ya te comenté, en ejecución para modificar los controlesdel formulario o incluso añadir nuevos.

Adición del control al formulario

Me.Controls.Add(Me.Button1)…

Aquí es donde realmente se añade el botón a la colección de controles del formulario, tal y como comentamosanteriormente.

Visualización del formulario

Me.ResumeLayout(False)Me.PerformLayout()

End Sub6…

Al final, se reanuda la visualización del formulario, una vez configurados todos los controles.

Eventos y manejadores de eventos

Friend WithEvents Button1 As System.Windows.Forms.ButtonEnd Class

Para que sepa que ha de controlar los eventos que tenga predefinidos y comprobar si tiene algún manejadorasociado.

PROGRAMACION BASADA EN EVENTOS

6

Page 19: Módulo_7_Aplicaciones Windows con VB

Codificación .NET Framework

Como ves, todo esto, que aquí es muy poco ya que sólo tenemos un botón,puede llegar a ser bastante pesado de codificar, sobre todo si lo tuviéramosque hacer nosotros todo. Pero el .NET Framework lo asume por su cuenta.

Comentarios

Creación o modificación de un código asociado a un eventoTodo el código asociado a un evento, su controlador y manejador se puede crear o modificar desde el código,de la misma forma que las propiedades y demás controles, lo cual permite crear o añadir controles de todotipo en tiempo de ejecución o a petición del usuario. Esto da una flexibilidad enorme y permite ajustar elcomportamiento de la aplicación a cualquier tipo de condición que se te ocurra, por ejemplo, en función delnivel de acceso de un usuario puedes dejar que vea los controles, pero que no actúen o incluso ocultarleaquello que no quieres que sepa siquiera que existe.

Desconexión física del control del códigoOtra funcionalidad, aunque esta es menos evidente, es que, al haber desconectado ”físicamente” el controldel código, mediante el manejador, se puede hacer que varios controles compartan el mismo código asociadoa sus eventos. Es bastante útil, sobre todo en aquellos formularios en los que tengas una cierta sobrecargade controles similares, cuyo código se diferencie poco o nada, con un simple Select Case en el código,condicionado al control que ha lanzado el evento tendrás toda tu operativa resuelta con un simple módulo.

PROGRAMACION BASADA EN EVENTOS

7

Page 20: Módulo_7_Aplicaciones Windows con VB

2. Asociación de eventos a métodos de respuesta.

Lanzamiento de eventos

Ya has visto lo sencillo que puede llegar a ser el asociar un evento al códigoque se ha de ejecutar al ocurrir el mismo.

Pero no siempre que se lanza un evento es por pulsar un botón, tambiénpodría ser la pulsación de una tecla, mover el ratón encima de algún controlo fuera de él.

También se pueden lanzar los eventos por código o los puede lanzar el propiosistema u otra aplicación externa.

Serie predefinida de eventos asociados

Como recordarás, hay una serie predefinida de eventos asociados a cadacontrol. Esta serie varía en función del tipo de control, aunque hay algunosbásicos del que casi todo control dispone, como puede ser el evento clic o elmouseHover, para controlar cuando pasas el ratón encima del control.

También hay que tener en cuenta, a la hora de añadir código a los eventos,que hay eventos que desencadenan otros eventos, siendo uno de los máscaracterísticos el DoubleClick, ya que lanza el MouseHover, MouseDown,MouseUp y Click consecutivamente, por lo que es conveniente tener estacircunstancia controlada para no encontrarse con sorpresas de códigoejecutado de forma inesperada.

Eventos y delegados

Respecto de los eventos…

El evento se puede considerar como un mensaje enviado por el objetoremitente, que el remitente capturará y actuará en consecuencia ejecutandoel código que haya implementado.

El problema es que el remitente sólo no sabe a quién le ha de remitir elmensaje, por lo que es necesario un intermediario que transmita elmensaje a quien corresponda, al que .NET llama delegado (un objetode la clase Delegate).

PROGRAMACION BASADA EN EVENTOS

8

Page 21: Módulo_7_Aplicaciones Windows con VB

Respecto de los delegados…

Un delegado viene a ser un puntero a función.

En el caso de los eventos simples, como el Click aquí ejemplarizado, no es necesario definir un delegadoespecífico, el sistema utiliza su delegado por defecto EventHandler, ya que en este caso no es necesariopasar datos ni parámetros especiales.

Construcción

En Visual Basic se utiliza la construcción, en dos partes, el WithEvents en el objeto y el Handles objeto.eventoen el método, en tiempo de diseño.

Si lo que se necesita es añadir o quitar un controlador en tiempo de ejecución deberemos utilizar AddHandlero RemoveHandler, en cuyo caso no necesitaremos el WithEvents, sólo seguir una sintaxis del tipo:

AddHandler miObjeto.miEvento, AddressOf Me.miMetodoManejadorRemoveHandler miObjeto.miEvento, AddressOf Me.miMetodoManejador

Ejemplo

Es un nuevo proyecto, con un simple botón en el centro del formulario, con el siguiente aspecto:

PROGRAMACION BASADA EN EVENTOS

9

Page 22: Módulo_7_Aplicaciones Windows con VB

Lista de eventos

Para acceder a otros eventos que no sean el predeterminado debemos, en la ventana de propiedades, pulsarel botón para ver la lista de eventos, y ahí seleccionar el que nos interese.

Creación de eventos propios

Podemos crear nuestros propios eventos, ya que, como todo, son un tipo de objeto de la clase Event.

Generar un controlador adecuado, asociarlo mediante un AddHandler y lanzarlo cuando sea necesario conla instrucción RaiseEvent.

Ejemplo 1

Public Event miEvento(ByVal Parametro As String)Public Sub miMetodoManejador(ByVal parametro As String)MsgBox("Se produjo el evento, miEvento, con el parámetro:” & _Parametro)End SubPublic Sub GestionMiEvento()AddHandler miEvento, AddressOf miMetodoManejadorEnd Sub

PROGRAMACION BASADA EN EVENTOS

10

Page 23: Módulo_7_Aplicaciones Windows con VB

Ejemplo 2

Class claseEventoPublic Event miEvento(ByVal Parametro As String)End ClassPublic WithEvents Prueba As claseEventoPublic Sub Pruebat_unEvento(ByVal Parametro As String) _

Handles Prueba.miEvento.AnEventMsgBox("Se produjo el evento, miEvento, con el parámetro:” & _Parametro)End Sub

Cada ejemplo estaría dentro del mismo módulo, en caso contrario habría que calificar todas las referencias,excepto si es la clase base que se califica con HandlesMyBase.Evento.

PROGRAMACION BASADA EN EVENTOS

11

Page 24: Módulo_7_Aplicaciones Windows con VB

3. Resumen

Has llegado al final de esta lección de formación que denominamos “Programación basada en eventos”. Enesta lección hemos estudiado los siguientes contenidos:

PROGRAMACION BASADA EN EVENTOS

12

Page 25: Módulo_7_Aplicaciones Windows con VB

FORMULARIOS YCONTROLES

WINDOWS

© élogos Conocimiento, S.L. Madrid 2009. Todos los derechos de Propiedad Intelectual e Industrial de esta obra pertenecen a élogos Conocimiento, S.L.

Page 26: Módulo_7_Aplicaciones Windows con VB

ÍNDICE

FORMULARIOS Y CONTROLES WINDOWS

1. Propiedades principales de un formulario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3

2. Creación de nuevos formularios en tiempo de ejecución . . . . . . . . . . . . . . . . . . . . . . . . . . .13

3. Añadir controles a un formulario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16

4. Creación dinámica de controles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18

5. Controles contenedores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19

6. Cuadros de diálogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23

7. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25

Page 27: Módulo_7_Aplicaciones Windows con VB

1. Propiedades principales de un formulario.

Definición

Como ya hemos visto en módulos anteriores, los formularios Windows tepermiten desarrollar aplicaciones de escritorio.

Cada formulario es un objeto de la clase System.Windows.Forms.Form, consus atributos, propiedades, métodos y eventos asociados.

Hereda

Los formularios, además de heredar de la clase mencionada, pueden heredardirectamente de otro formulario que hayamos creado personalmente, lo cual nos permitegenerar el layout o aspecto estándar de nuestra aplicación y utilizarlo como base dediseño de todos los formularios de la misma, incluyendo no sólo el aspecto visual, sinotambién un subconjunto de controles con funcionalidad asociada, así como cualquieratributo, propiedad o método que hayamos implementado en el mismo.

Propiedades, métodos y eventos

Vamos a centrarnos en las principales propiedades y métodos de los formularios Windows.

Lógicamente, no vamos a comentarlos todos. La gran mayoría tienen unos nombres lo suficientementedescriptivos como para hacernos una idea general de su finalidad y un pequeño paseo por la ayuda nospermitirá descubrir sus características concretas, así como ejemplos de su uso.

FORMULARIOS Y CONTROLES WINDOWS

3

Page 28: Módulo_7_Aplicaciones Windows con VB

Propiedades:

AcceptButtonAccessibilityObjectAccessibleDefaultActionDescriptionAccessibleDescriptionAccessibleNameAccessibleRoleActiveControlActiveFormActiveMdiChildAllowDropAllowTransparencyAnchorAutoScaleAutoScaleBaseSizeAutoScaleDimensionsAutoScaleFactorAutoScaleModeAutoScrollAutoScrollMarginAutoScrollMinSizeAutoScrollOffsetAutoScrollPositionAutoSizeAutoSizeModeAutoValidateBackColorBackgroundImageBackgroundImageLayoutBindingContextBottomBoundsCancelButtonCanEnableImeCanFocus

CanRaiseEventsCanSelectCaptureCausesValidationClientRectangleClientSizeCompanyNameContainerContainsFocusContextMenuContextMenuStripControlBoxControlsCreatedCreateParamsCurrentAutoScaleDimensionsCursorDataBindingsDefaultCursorDefaultImeModeDefaultMarginDefaultMaximumSizeDefaultMinimumSizeDefaultPaddingDefaultSizeDesignModeDesktopBoundsDesktopLocationDialogResultDisplayRectangleDisposingDockDockPaddingDoubleBufferedEnabledEvents

FORMULARIOS Y CONTROLES WINDOWS

4

Page 29: Módulo_7_Aplicaciones Windows con VB

FocusedFontFontHeightForeColorFormBorderStyleHandleHasChildrenHeightHelpButtonHorizontalScrollHScrollIconImeModeImeModeBaseInvokeRequiredIsAccessibleIsDisposedIsHandleCreatedIsMdiChildIsMdiContainerIsMirroredIsRestrictedWindowKeyPreviewLayoutEngineLeftLocationMainMenuStripMarginMaximizeBoxMaximizedBoundsMaximumSizeMdiChildrenMdiParentMenuMergedMenuMinimizeBox

MinimumSizeModalNameOpacityOwnedFormsOwnerPaddingParentParentFormPreferredSizeProductNameProductVersionRecreatingHandleRegionRenderRightToLeftResizeRedrawRestoreBoundsRightRightToLeftRightToLeftLayoutScaleChildrenShowFocusCuesShowIconShowInTaskbarShowKeyboardCuesShowWithoutActivationSiteSizeSizeGripStyleStartPositionTabIndexTabStopTagTextTopTopLevel

FORMULARIOS Y CONTROLES WINDOWS

5

Page 30: Módulo_7_Aplicaciones Windows con VB

TopLevelControlTopMostTransparencyKeyUseWaitCursorVerticalScrollVisibleVScrollWidthWindowStateWindowTarget

Métodos:

AccessibilityNotifyClientsActivateActivateMdiChildAddOwnedFormAdjustFormScrollbarsApplyAutoScalingBeginInvokeBringToFrontCenterToParentCenterToScreenCloseContainsCreateAccessibilityInstanceCreateControlCreateControlsInstanceCreateGraphicsCreateHandleCreateObjRefDefWndProcDestroyHandleDisposeDoDragDropDrawToBitmap

EndInvokeEqualsFinalizeFindFormFocusGetAccessibilityObjectByIdGetAutoScaleSizeGetAutoSizeModeGetChildAtPointGetContainerControlGetHashCodeGetLifetimeServiceGetNextControlGetPreferredSizeGetScaledBoundsGetScrollStateGetServiceGetStyleGetTopLevelGetTypeHideInitializeLifetimeServiceInitLayoutInvalidateInvokeInvokeGotFocusInvokeLostFocusInvokeOnClickInvokePaintInvokePaintBackgroundIsInputCharIsInputKeyLayoutMdiMemberwiseCloneNotifyInvalidateOnActivated

FORMULARIOS Y CONTROLES WINDOWS

6

Page 31: Módulo_7_Aplicaciones Windows con VB

OnAutoSizeChangedOnAutoValidateChangedOnBackColorChangedOnBackgroundImageChangedOnBackgroundImageLayoutChangedOnBindingContextChangedOnCausesValidationChangedOnChangeUICuesOnClickOnClientSizeChangedOnClosedOnClosingOnContextMenuChangedOnContextMenuStripChangedOnControlAddedOnControlRemovedOnCreateControlOnCursorChangedOnDeactivateOnDockChangedOnDoubleClickOnDragDropOnDragEnterOnDragLeaveOnDragOverOnEnabledChangedOnEnterOnFontChangedOnForeColorChangedOnFormClosedOnFormClosingOnGiveFeedbackOnGotFocusOnHandleCreatedOnHandleDestroyedOnHelpButtonClicked

OnHelpRequestedOnImeModeChangedOnInputLanguageChangedOnInputLanguageChangingOnInvalidatedOnKeyDownOnKeyPressOnKeyUpOnLayoutOnLeaveOnLoadOnLocationChangedOnLostFocusOnMarginChangedOnMaximizedBoundsChangedOnMaximumSizeChangedOnMdiChildActivateOnMenuCompleteOnMenuStartOnMinimumSizeChangedOnMouseCaptureChangedOnMouseClickOnMouseDoubleClickOnMouseDownOnMouseEnterOnMouseHoverOnMouseLeaveOnMouseMoveOnMouseUpOnMouseWheelOnMoveOnNotifyMessageOnPaddingChangedOnPaintOnPaintBackgroundOnParentBackColorChanged

FORMULARIOS Y CONTROLES WINDOWS

7

Page 32: Módulo_7_Aplicaciones Windows con VB

OnParentBackgroundImageChangedOnParentBindingContextChangedOnParentChangedOnParentCursorChangedOnParentEnabledChangedOnParentFontChangedOnParentForeColorChangedOnParentRightToLeftChangedOnParentVisibleChangedOnPreviewKeyDownOnPrintOnQueryContinueDragOnRegionChangedOnResizeOnResizeBeginOnResizeEndOnRightToLeftChangedOnRightToLeftLayoutChangedOnScrollOnShownOnSizeChangedOnStyleChangedOnSystemColorsChangedOnTabIndexChangedOnTabStopChangedOnTextChangedOnValidatedOnValidatingOnVisibleChangedPerformAutoScalePerformLayoutPointToClientPointToScreenPreProcessControlMessagePreProcessMessageProcessCmdKey

ProcessDialogCharProcessDialogKeyProcessKeyEventArgsProcessKeyMessageProcessKeyPreviewProcessMnemonicProcessTabKeyRaiseDragEventRaiseKeyEventRaiseMouseEventRaisePaintEventRecreateHandleRectangleToClientRectangleToScreenRefreshRemoveOwnedFormResetBackColorResetBindingsResetCursorResetFontResetForeColorResetImeModeResetMouseEventArgsResetRightToLeftResetTextResumeLayoutRtlTranslateAlignmentRtlTranslateContentRtlTranslateHorizontalRtlTranslateLeftRightScaleScaleControlScaleCoreScrollControlIntoViewScrollToControlSelect

FORMULARIOS Y CONTROLES WINDOWS

8

Page 33: Módulo_7_Aplicaciones Windows con VB

SelectNextControlSendToBackSetAutoScrollMarginSetAutoSizeModeSetBoundsSetBoundsCoreSetClientSizeCoreSetDesktopBoundsSetDesktopLocationSetDisplayRectLocationSetScrollStateSetStyleSetTopLevelSetVisibleCoreShowShowDialogSizeFromClientSizeSuspendLayoutToStringUpdateUpdateBoundsUpdateDefaultButtonUpdateStylesUpdateZOrderValidateValidateChildrenWndProc

Eventos:

ActivatedAutoSizeChangedAutoValidateChangedBackColorChangedBackgroundImageChangedBackgroundImageLayoutChanged

BindingContextChangedCausesValidationChangedChangeUICuesClickClientSizeChangedClosedClosingContextMenuChangedContextMenuStripChangedControlAddedControlRemovedCursorChangedDeactivateDisposedDockChangedDoubleClickDragDropDragEnterDragLeaveDragOverEnabledChangedEnterFontChangedForeColorChangedFormClosedFormClosingGiveFeedbackGotFocusHandleCreatedHandleDestroyedHelpButtonClickedHelpRequestedImeModeChangedInputLanguageChangedInputLanguageChangingInvalidated

FORMULARIOS Y CONTROLES WINDOWS

9

Page 34: Módulo_7_Aplicaciones Windows con VB

KeyDownKeyPressKeyUpLayoutLeaveLoadLocationChangedLostFocusMarginChangedMaximizedBoundsChangedMaximumSizeChangedMdiChildActivateMenuCompleteMenuStartMinimumSizeChangedMouseCaptureChangedMouseClickMouseDoubleClickMouseDownMouseEnterMouseHoverMouseLeaveMouseMoveMouseUpMouseWheelMovePaddingChangedPaintParentChangedPreviewKeyDownQueryAccessibilityHelpQueryContinueDragRegionChangedResizeResizeBeginResizeEndRightToLeftChangedRightToLeftLayoutChanged

ScrollShownSizeChangedStyleChangedSystemColorsChangedTabIndexChangedTabStopChangedTextChangedValidatedValidatingVisibleChanged

Propiedades relevantes

A:AcceptButton: asigna el botón predeterminadopara la tecla <Intro>.ActiveControl: fija o recupera el control activo eneste momento.ActiveForm: recupera el formulario activo en laaplicación.AutoSize y AutoSizeMode: Establece el ajusteautomático de tamaño del formulario.

B:BackColor: establece o recupera el color de fondodel formularioBackgroundImage y BackgroundImagenLayout:establecen o recuperan la imagen de fondo delformulario.

C:CancelButton: el que se ejecutará cuando elusuario pulse <Esc>.

Controls: ya comentada, la colección de todos loscontroles contenidos en el formulario.

FORMULARIOS Y CONTROLES WINDOWS

10

Page 35: Módulo_7_Aplicaciones Windows con VB

D:DesktopBounds y DesktopLocation: establecen orecuperan la posición del formulario en elescritorio.

F:Forecolor: El color de primer plano genérico para elformulario.

I:Icon: fija o recupera el icono de la aplicación.

M:MainMenuStrip y Menu: fijan o recuperan el menúprincipal del formulario.

R:ResizeRedraw: para indicar si el formulario sevuelve a dibujar si se cambia de tamaño.

S:ShowInTaskBar: como su nombre indica, paramostrar o no el formulario en la barra de tareas.

V:Visible: fija o recupera la indicación de visibilidadactual del formulario.

Métodos relevantes

A:Activate: Hace que el formulario sea el activo y leda el foco.

C:Close: cierra el formulario.Contains: para saber si contiene determinadocontrol.CreateControl: crea un control.

D:Dispose: libera el formulario y lo deja listo para elrecolector de basura.

F:Finalize: libera los recursos y deja el formulariolisto para el dispose.

H:Hide: oculta el formulario.

O:Onxxxxxx: provoca el evento xxxxxx, válido paratodos los métodos On de la lista.

R:RaiseKeyEvent, RaiseMouseEvent, RaisePaintEvent:provoca el lanzamiento del evento indicado.Refresh: actualiza la visualización del formulario,volviendo a pintarlo.ResetBackColor, ResetForeColor: devuelve loscolores de fondo y primer plano a su valor original.ResumeLayout: lo vimos en un ejemplo de unmódulo anterior, vuelve pintar en pantalla elformulario.

S:Show: muestra el formulario, opuesto a Hide.SuspendLayout: visto en conjunción conResumeLayout, deja de pintar el formulario, útil sise va a modificar el aspecto de varios controles,para evitar el baile continuo en pantalla.

FORMULARIOS Y CONTROLES WINDOWS

11

Page 36: Módulo_7_Aplicaciones Windows con VB

Eventos relevantes

A:Activated: se produce al activarse el formulario,por código o por el usuario.

C:Closed, FormClosed: cuando el formulario estácerrado.Closing, FormClosing: cuando el formulario se estácerrando, momento estupendo para liberarrecursos.ControlAdded, ControlRemoved: al añadir o quitarun control a la colección.

D:Deactivate: cuando el formulario pierde al foco ydeja de ser el activo.

G:GotFocus: al recibir el foco.

L:Load: muy importante, es el evento que se produceal cargar el formulario y antes de que se presenteal usuario por primera vez.Shown: al terminar de mostrar el formulario porprimera vez.

FORMULARIOS Y CONTROLES WINDOWS

12

Page 37: Módulo_7_Aplicaciones Windows con VB

2. Creación de nuevos formularios en tiempo de ejecución

Creación de formularios

Uno de los puntos fuertes de .NET Framework es el entorno gráfico interactivo de Visual Studio, que tepermite un gran control y facilidad para el diseño e implementación de las aplicaciones, incluyendo, porsupuesto, las de escritorio.

Pero otro de los puntos fuertes es la posibilidad de creación y manipulación de formularios y controles entiempo de ejecución.

Esto da una gran flexibilidad a la hora de plantear las aplicaciones, ya que no hay rigidezni formularios estáticos, podemos diseñar el esqueleto e ir rellenando sobre la marcha,en función de las opciones que elija el usuario o el desarrollo de la aplicación.

Pasos para la creación

Como un formulario es un objeto de la clase System.Windows.Forms.Form, sólo hay que crear una nuevainstancia, y asignarle los correspondientes atributos y propiedades, según se desee.

Después añadiremos y configuraremos adecuadamente todos los controles necesarios, para después hacervisible el formulario.

FORMULARIOS Y CONTROLES WINDOWS

13

Page 38: Módulo_7_Aplicaciones Windows con VB

Ejemplo

La idea es crear un proyecto de consola que dentro de su Main genere y presente un formulario, con algunapropiedad cambiada.

Imports System.Windows.FormsImports System.Drawing

Module Module1Sub Main()

' Crea un nuevo formularioDim miFormulario As New Form()' Crea un par de botones para el formularioDim botonAceptar As New Button()Dim botonCancelar As New Button()' Pone texto a los botonesbotonAceptar.Text = "Aceptar"botonCancelar.Text = "Cancelar"' Fija la posición de los botones en el formulariobotonAceptar.Location = New Point(10, 10)botonCancelar.Location = New Point(botonAceptar.Left,_

botonAceptar.Height + botonAceptar.Top + 10)' Fija algunas propiedades del formulario' Aprovecho para practicar la estructura With, que ya vimos :)With miFormulario

.Text = "Mi formulario" ' Pone el título de la ventana

.HelpButton = True ' Muestra un botón de ayuda

.FormBorderStyle = FormBorderStyle.FixedDialog ' El borde a cuadro de diálogo

.MaximizeBox = False ' Quita el botón de maximizar

.MinimizeBox = False ' Quita el botón de minimizar

.BackColor = Color.BurlyWood ' Pone color de fondo

.AcceptButton = botonAceptar ' Fija el botón de aceptar' como defecto para intro

FORMULARIOS Y CONTROLES WINDOWS

14

Page 39: Módulo_7_Aplicaciones Windows con VB

.CancelButton = botonCancelar ' Fija el botón de cancelar ' para escape

.StartPosition = FormStartPosition.CenterScreen ' Pone el 'formulario en el centro

.Controls.Add(botonAceptar) ' Añade el botón de aceptar

.Controls.Add(botonCancelar) ' Añade el botón de cancelar

.ShowDialog() ' Muestra el formulario como un cuadro de' diálogo

End WithEnd Sub

End Module

FORMULARIOS Y CONTROLES WINDOWS

15

Page 40: Módulo_7_Aplicaciones Windows con VB

3. Añadir controles a un formulario

Posibilidades de agregar controles

Ya lo hemos hecho algunas veces, ya que cualquier aplicación de formularios Windows tiene, necesariamente,controles en ellos, a no ser que tengamos un simple lienzo en blanco, o con el BackColor seleccionado, perosin contenido ni funcionalidad.

Evidentemente, esto no es lo deseado en ninguna aplicación, por lo tanto, la tarea de agregar controles alos formularios será una de las más habituales.

Para efectuarla tenemos, como ya vimos en un módulo anterior, varias posibilidades:

- En el IDE, doble clic en la barra de herramientas

- En el IDE, arrastrar y soltar desde la barra de herramientas al formulario.

- Por código, añadirlos en tiempo de ejecución.

Sistemas de ayuda

NOTA 1. Como todo objeto, los controles tienen atributos, propiedades, métodos y eventos asignados que podemosutilizar para implementar las funcionalidades de las que disponen. Por supuesto, no es obligatorio, ni siquieraaconsejable, utilizarlos todos. Son muchos y algunas de sus funciones son opuestas.

NOTA 2. La lista de las propiedades, métodos y eventos de cada control nos podría llevar un tiempo importante, dadoel enorme número de controles existentes y la ingente cantidad de propiedades, métodos y eventos yadefinidos. La simple enumeración de todos ellos sería un auténtico diccionario completo.

NOTA 3. En cada grupo de controles de la barra de herramientas del IDE encontraremos los más habituales y, por lotanto, los más usados.

FORMULARIOS Y CONTROLES WINDOWS

16

Page 41: Módulo_7_Aplicaciones Windows con VB

Ejemplo de controles

Como pequeño ejemplo de lo que se puede hacer con los controles, vamos a insertar, mediante el IDE deVisual Studio, 3 controles en un formulario en blanco y con ello conseguiremos un browser plenamentefuncional.

Sólo con:

1. Una caja de texto para introducir las URLs2. Un botón para que vaya a dicha URL3. Un control WebBrowser.

Public Class Form1Private Sub Button1_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles Button1.ClickWebBrowser1.Url = New System.Uri(TextBox1.Text)

End SubEnd Class

Sólo se trata de asignar la URL introducida en la caja de texto a la propiedad URL del WebBrowser, al pulsarel botón.

Lo demás, viene sólo desde el IDE del Visual Studio y todo lo que tiene detrás .NET Framework.

FORMULARIOS Y CONTROLES WINDOWS

17

Page 42: Módulo_7_Aplicaciones Windows con VB

4. Creación dinámica de controles

Controles contenedores

Ahora vamos a ver cómo ser puede codificar la creación de controles en tiempo de ejecución.

Una de las primeras consideraciones a tener en cuenta es dónde queremos situar el control. No es baladí,además de situar el control en el propio formulario, disponemos de un surtido de controles “contenedores”,especializados en contener otros controles para agruparlos.

RadioButton en un GroupBox

Una lista de opciones relativas a un ítem en particular se pueden agrupar como controles RadioButton en unGroupBox, esto nos dará unas funcionalidades añadidas a la hora de tratarlos como grupo.

Evidentemente, si generamos controles de forma dinámica, el IDE de Visual Studio nos podrá ayudar, con loque todas las funciones que realiza éste por detrás, tendremos que hacerlas nosotros, por lo que deberemostener muy presente cuáles son las propiedades del control que deseamos fijar y cuáles han de ser los métodosque tenemos que asociar necesariamente, para que dicho control funcione adecuadamente.

Pasos para agregar un botón

Por ejemplo, para agregar un botón, opción bastante frecuente, tendremos que realizar varios pasos:

1. Crear una instancia de la clase Button.2. Agregar esta instancia a la colección Controls del contenedor seleccionado.3. Asociarle un handler a cada evento del botón que desees controlar.

Para un correcto funcionamiento…

Evidentemente, cuanto más complejo sea el control a añadir, mayor será el cuidado a la hora de codificarsu inserción, para asegurar su correcta funcionalidad.

Un problema habitual en el diseño interactivo de formularios es el no saber el número de controles que sehan de añadir, por lo que las estructuras de bloque repetitivo viene muy bien en estos casos, y el disponerde un contenedor que reciba los controles asegura que no nos salgamos del formulario a base de añadircontroles, que ocurre con cierta frecuencia.

FORMULARIOS Y CONTROLES WINDOWS

18

Page 43: Módulo_7_Aplicaciones Windows con VB

5. Controles contenedores

Función

Como ya hemos comentado, los controles contenedores son los encargados de agrupar otros controlespermitiendo organizar adecuadamente la superficie de trabajo.

Los principales controles contenedores son los siguientes:

FlowLayoutPanel, presenta el contenido horizontal o verticalmente, de forma dinámica.GroupBox, agrupa controles y permite un título, aunque no tiene barras de desplazamiento.Panel, no permite título, pero sí dispone de barras de desplazamiento.SplitContainer, tiene dos paneles que están separados por una barra que se puede mover.TabControl, permite disponer de solapas, para refinar el agrupamiento de controles.TableLayoutPanel, con formato de tabla, en filas y columnas.

Ejemplo para la creación dinámica de controles

Con esto se puede cubrir prácticamente cualquier necesidad de agrupación de controles.

Como ejemplo para la creación dinámica de controles y contenedores vamos a generar un proyecto deformularios Windows y añadirle una caja de texto y un botón.

En la caja de texto el usuario deberá introducir algún texto y el botón será para que pueda acceder a lamodificación del aspecto visual del texto.

Añadiremos dos controles GroupBox, uno de ellos, con título “BackColor” nospresentará una colección de controles RadioButton con los colores Negro,Azul, Marrón, Rojo, Amarillo y Blanco, el otro control GroupBox llevará portítulo “ForeColor” y contendrá otra colección de controles RadioButtonidéntica a la anterior.

EL propósito evidente de estos controles será que, cuando el usuario pincheen un control radioButton, se actualice correspondientemente el color defondo o el de primer plano del texto del control TextBox.

Para ello, primero creamos un formulario, con las especificaciones antesindicadas, con este aspecto:

FORMULARIOS Y CONTROLES WINDOWS

19

Page 44: Módulo_7_Aplicaciones Windows con VB

El código sería el siguiente:Public Class Form1

Dim back As GroupBox = New GroupBox()Dim fore As GroupBox = New GroupBox()Dim BB As RadioButton() = {New RadioButton(), New RadioButton(), _

New RadioButton(), New RadioButton(), _New RadioButton(), New RadioButton()}

Dim FB As RadioButton() = {New RadioButton(), New RadioButton(), _New RadioButton(), New RadioButton(), _New RadioButton(), New RadioButton()}

Dim Tope As Integer = 0Dim color As System.Drawing.ColorPrivate Sub Button1_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles Button1.Click'Creamos los controles para agruparback.Text = "BackColor"back.Location = New Point(15, 80)back.Width = 100back.Height = 200fore.Text = "ForeColor"fore.Location = New Point(130, 80)fore.Width = 100fore.Height = 200' Creamos los botones de seleccióncolor = System.Drawing.Color.Blackagregar(color, 0)

color = System.Drawing.Color.Blueagregar(color, 1)color = System.Drawing.Color.Maroonagregar(color, 2)color = System.Drawing.Color.Redagregar(color, 3)color = System.Drawing.Color.Yellowagregar(color, 4)

FORMULARIOS Y CONTROLES WINDOWS

20

Page 45: Módulo_7_Aplicaciones Windows con VB

color = System.Drawing.Color.Whiteagregar(color, 5)' Añadimos los botones a los groupboxFor i As Integer = 0 To 5

back.Controls.Add(BB(i))fore.Controls.Add(FB(i))

Next'Añadimos los GroupBox al formularioMe.Controls.Add(back)Me.Controls.Add(fore)

End SubPublic Sub agregar(ByVal color As System.Drawing.Color, _ByVal i As Integer)

Tope += 20' Para el color de fondoDim b As RadioButton = New RadioButton()b.Text = color.ToString()b.Tag = colorb.Location = New Point(5, Tope)AddHandler b.Click, AddressOf back_ClickBB(i) = b' Para el color de primer planoDim f As RadioButton = New RadioButton()f.Text = color.ToString()f.Tag = colorf.Location = New Point(5, Tope)AddHandler f.Click, AddressOf fore_ClickFB(i) = f

End SubPrivate Sub back_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs)Dim boton As RadioButton = senderTextBox1.BackColor = boton.Tag

End SubPrivate Sub fore_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs)

FORMULARIOS Y CONTROLES WINDOWS

21

Page 46: Módulo_7_Aplicaciones Windows con VB

Dim boton As RadioButton = senderTextBox1.ForeColor = boton.Tag

End SubEnd Class

Si hacemos clic F5 y pulsamos el botón, sale:

FORMULARIOS Y CONTROLES WINDOWS

22

Page 47: Módulo_7_Aplicaciones Windows con VB

6. Cuadros de diálogo

Definición

Los cuadros de diálogo son, esas ventanas especializadas con las que el sistema y nuestros programas puedeninteractuar con el usuario, fuera del flujo de los programas.

Los principales cuadros de diálogos son:

ColorDialog, para selección del color de cualquier elemento.FontDialog, para seleccionar la fuente de un texto.OpenFileDialog, el típico para abrir un archivo.PrintDialog, el que se presentará para imprimir.PrintPreviewDialog, para la vista previa de impresión.FolderBrowserDialog, para seleccionar una carpeta.SaveFileDialog, para salvar archivos.

Cuadros de diálogo estándar

Como puedes comprobar, son los cuadros de diálogo estándar del sistema.

Lo bueno, es que podemos acceder a ellos y están disponibles para integrarlos en el código, con lo que nohemos de desarrollar estas funcionalidades tan útiles, ya están desarrolladas y más que probadas, listas parasu uso.

Como ejemplo vamos a poner, en un formulario, un control RichTextBox, y un botón. Cuando pulsemos elbotón hay que mostrar el cuadro de diálogo ColorDialog para cambiar el color del texto introducido.

FORMULARIOS Y CONTROLES WINDOWS

23

Page 48: Módulo_7_Aplicaciones Windows con VB

Ejemplo

Y funcionando es:

Public Class Form1Private Sub Button1_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles Button1.ClickDim dialogo As New ColorDialog()' Quita la opciçon de definir nuevos colores.dialogo.AllowFullOpen = False'Sitçua la lista en el color actual del textodialogo.Color = RichTextBox1.ForeColor' Si no ha cancelado, se pone el nuevo color If (dialogo.ShowDialog() = Windows.Forms.DialogResult.OK) Then

RichTextBox1.ForeColor = dialogo.ColorEnd If

End SubEnd Class

FORMULARIOS Y CONTROLES WINDOWS

24

Page 49: Módulo_7_Aplicaciones Windows con VB

7. Resumen

Has llegado al final de esta lección de formación que denominamos “Formularios y controles Windows”. Enesta lección hemos estudiado los siguientes contenidos:

FORMULARIOS Y CONTROLES WINDOWS

25

Page 50: Módulo_7_Aplicaciones Windows con VB

ESTUDIO DE LOSPRINCIPALES CONTROLES

WINDOWS

© élogos Conocimiento, S.L. Madrid 2009. Todos los derechos de Propiedad Intelectual e Industrial de esta obra pertenecen a élogos Conocimiento, S.L.

Page 51: Módulo_7_Aplicaciones Windows con VB

ÍNDICE

ESTUDIO DE LOS PRINCIPALES CONTROLES WINDOWS

1. Análisis de las propiedades comunes más importantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3

2. El control Label y LinkLabel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6

3. El control Button. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8

4. Controles de edición. TextBox y MaskedTextBox. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10

5. Controles de tipo lista. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12

6. Crear, configurar y programar menús . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13

7. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15

Page 52: Módulo_7_Aplicaciones Windows con VB

1. Análisis de las propiedades comunes más importantes

Objetivos

- Al finalizar esta lección serás capaz de:- Conocer las propiedades comunes más importantes- Usar el control Labely LinkLabel- Usar el control Button- Usar controles de edición. TextBox y MaskedTextBox- Usar controles de tipo lista- Crear , configurar y programar menús- Las propiedades comunes a todos los controles son aquellas heredadas de la clase Control, de la que

todos derivan.

Definición

Adicionalmente, y por espacio de nombres o entorno de aplicación, hay grupos de controles que tienen otraspropiedades comunes.

Dentro de los principales controles utilizados en los Windows Forms podríamos destacar los siguientes:

“Anchor: permite fijar los límites del control a los de sucontenedor, y hacer que cambie de tamaño con este.Autosize: para que el control tenga un tamaño estándar,adaptado a su contenido.BackColor: fija el color de fondo del control.BackgroundImage: establece la imagen de relleno delcontrolBottom: establece la posición inferior del control.Bounds: establece los límites del control.CanFocus: establece si el control puede recibir el foco.CanSelect: establece si se podrá seleccionar el contenidodel control.Capture: indica si el control ha capturado el ratón.

ESTUDIO DE LOS PRINCIPALES CONTROLES WINDOWS

3

Page 53: Módulo_7_Aplicaciones Windows con VB

CausesValidation: indica si la modificación delcontrol provoca que se validen todos los controlesque se debanvalidar en su contenedor al recibir elfoco.Container: establece quien es el contenedor delcontrol.ContainsFocus: indica si el control tiene el foco enese momento.ContextMenu y ContextMenuStrip: establece elmenú contextual asociado al control (botónderecho).Controls: la colección de los controles contenidosen este.Cursor: establece la apariencia del cursor cuandoesté dentro del control.DataBindings: establece el enlace de datos delcontrol.Disposing: indica si el control está en curso deeliminación.Dock: parecido a Anchor, fija los límites del controla los de su contenedor.”“Enabled: indica si el control está habilitado.Focused: indica si el control tiene el foco en esemomento.Font: el tipo de letra del texto del control.ForeColor: color del texto del control.Handle: el indicador de ventana al que estáasociado el control.HasChildren: indica si el control tiene otroscontenidos en él.Heigth: altura del control.IsAccesible: si el control está habilitado paraaccesibilidad.IsDisposed: si el control ha sido eliminado.IsHandleCreated: si el control tiene un manejadorasociado.

Left: posición izquierda del control, dentro de sucontenedor.Location: posición del control.”“Margin: distancia a los controles limítrofes.ModifierKeys: si hay alguna tecla modificadorapulsada (Control, Mayúsculas o Alternativa).MouseButtons: para saber que botón del ratón seha pulsado.Name: el nombre del control, único dentro delmódulo.Padding: espacio de relleno dentro del control.Parent: identificación del contenedor del control.Region: la región de la pantalla en la que seencuentra el control.Right: posición derecha del control.Size: tamaño del control.TabIndex: número de orden de tabulación delcontrol, dentro de su contenedor.TabStop: indica si se podrá acceder al controlmediante tabulación.Tag: datos complementarios al control.Text: texto asociado al control, según lascaracterísticas del mismo podrá revestir diversosaspectos: contenido, título, texto mostrado,…Top: posición superior del control.Visible: indicador de visibilidad del control.Width: ancho del control.”

ESTUDIO DE LOS PRINCIPALES CONTROLES WINDOWS

4

Page 54: Módulo_7_Aplicaciones Windows con VB

Propiedad Name

Como ves, es una lista muy extensa, y son sólo las principales de las propiedades comunes. Te aconsejamos,que vayas curioseando por los diversos sistemas de ayuda para profundizar en las propiedades disponibles.

Lógicamente hay grupos de propiedades con funcionalidades relacionadas, algunas similares y otrasantagónicas.

Aunque hay al menos una que no podrás evitar, Name, ya que cada controlha de tener un nombre único dentro del módulo, para poder acceder a él deforma unívoca. Normalmente el IDE ya se encarga de asignar nombres únicos,pero es una consideración a tener en cuenta a la hora de la creación dinámicade controles, que vimos en el módulo anterior.

ESTUDIO DE LOS PRINCIPALES CONTROLES WINDOWS

5

Page 55: Módulo_7_Aplicaciones Windows con VB

2. El control Label y LinkLabel

Definición del control label y LinkLabel

Estos dos controles son los especializados en mostrar texto en pantalla, no accesible por el usuario, sólo delectura, por lo que jamás recibirá el foco.

Son habitualmente utilizados para los títulos asociados a otros controles que no dispongan de estafuncionalidad o para textos explicativos en pantalla de lo que el usuario ha de introducir en algún control.

En cambio, el contenido de un control de este tipo es perfectamente accesible en tiempo de ejecución desdeel programa, por lo que se utiliza también para indicadores de estado o de progreso, informando al usuariode cómo van las cosas.

Como la mayoría de controles, puede tener una imagen de fondo, aunque no sea el tipo de controlespecializado en ello.

Asignar un fondo transparente

Es posible asignar un fondo transparente, con BackColor = Color.Transparent, lo que permitiría superponeruno de estos controles encima de otro y que se vean ambos.

Pero es una característica a manejar con cuidado ya que podemos llegar amarear al motor gráfico y al final no leeríamos nada. Esta facilidad está másorientada a poder ver sin problemas la imagen de fondo del contenedor.

ESTUDIO DE LOS PRINCIPALES CONTROLES WINDOWS

6

Page 56: Módulo_7_Aplicaciones Windows con VB

Diferencia entre control label y LinkLabel

La diferencia entre el control LinkLabel y el Label está en la capacidad del primero para mostrarhipervínculos. Puede haber varios hipervínculos de tipo LinkLabel.Link en un control LinkLabel (en sucolección LinkLabel.LinkCollection), cada uno apuntando a un tipo de recurso distinto.

Estos dos controles se han mantenido por la famosa compatibilidad con versiones anteriores, pero Microsoftrecomienda en su documentación que se vaya migrando a los controles de la clase ToolStripLabel para cubrirestas funcionalidades, ya que es una clase más especializada.

ESTUDIO DE LOS PRINCIPALES CONTROLES WINDOWS

7

Page 57: Módulo_7_Aplicaciones Windows con VB

3. El control Button

Definición del control Button

Este control ya es un viejo conocido, ya que se utiliza en prácticamente todoslos lenguajes de programación visuales.

Como es evidente, sirve para mostrar un botón de acción en pantalla yresponder a varios eventos que se pueden producir en la interacción con elusuario.

Ya conoces el Click, MouseHover, MouseDown, MouseUp, MouseLeave, MouseDoubleClick. Si revisamos la listade eventos asociados, vemos que la cantidad de posibilidades es enorme. Hay que ser realmente sutil paraestablecer diferentes acciones posibles para cada uno de ellos.

Botón con apariencia plana

Una posibilidad es la de darle, inicialmente al botón una apariencia “plana”, es decir sin relieve. Cuando elusuario pase el ratón por encima, el botón adquirirá relieve. Queda muy efectista y da un cierto toque deelegancia.

Los botones se pueden activar con <Intro> o la barra espaciadora, si tienen el foco.

A-CAutoSizeChangedBackColorChangedBackgroundImageChangedBackgroundImageLayoutChangedBindingContextChangedCausesValidationChangedChangeUICuesClickClientSizeChangedContextMenuChangedContextMenuStripChangedControlAddedControlRemovedCursorChanged

ESTUDIO DE LOS PRINCIPALES CONTROLES WINDOWS

8

Page 58: Módulo_7_Aplicaciones Windows con VB

D-FDisposedDockChangedDoubleClickDragDropDragEnterDragLeaveDragOverEnabledChangedEnterFontChangedForeColorChanged

G-IGiveFeedbackGotFocusHandleCreatedHandleDestroyedHelpRequestedImeModeChangedInvalidated

K-MKeyDownKeyPressKeyUpLayoutLeaveLocationChangedLostFocusMarginChangedMouseCaptureChanged

MouseClickMouseDoubleClickMouseDownMouseEnterMouseHoverMouseLeaveMouseMoveMouseUpMouseWheelMove

P-RPaddingChangedPaintParentChangedPreviewKeyDownQueryAccessibilityHelpQueryContinueDragRegionChangedResizeRightToLeftChanged

S-VSizeChangedStyleChangedSystemColorsChangedTabIndexChangedTabStopChangedTextChangedValidatedValidatingVisibleChanged

ESTUDIO DE LOS PRINCIPALES CONTROLES WINDOWS

9

Page 59: Módulo_7_Aplicaciones Windows con VB

4. Controles de edición. TextBox y MaskedTextBox

Descripción controles de edición

Los controles de edición son aquellos especializados en la introducción de texto por parte del usuario.Hay varios tipos TextBox, MaskedTextBox y RichTextBox.

TextBox:

El control TextBox se utiliza, habitualmente, para la introducción de una única línea de texto, aunque disponede las propiedades MultiLine, ScrollBars y WordWrap para configurarlo para múltiples líneas y de lasAcceptsTabs y AcceptsReturn para darle mayor flexibilidad a la hora de introducir tabulaciones o saltos delínea. También se puede utilizar para la introducción de contraseñas activando su propiedad PasswordChar,que enmascarará todo el texto introducido. Se puede limitar el tipo de caracteres introducidos conCharacterCasing y la longitud del texto con MaxLength.

MaskeTexBox:

El control MaskedTextBox es un control TextBox mejorado, de cara a la validación de la informaciónintroducida, al permitir fijar una máscara (Mask) para los datos que se puedan teclear en el mismo. De estaforma, una vez fijada la máscara, no deberás preocuparte por la validación del los datos introducidos, ya queel formato sólo podrá ser el permitido por dicha máscara.

La propiedad Mask de este control nos permitirá efectuar las siguientes restricciones sobre los datosintroducidos:

- Indicar los caracteres obligatorios.- Indicar los caracteres que sean optativos.- Indicar los caracteres fijos, por ejemplo la barra”/” en las fechas.- Indicar el tipo de carácter de una posición concreta.- Indicar conversiones de caracteres, por ejemplo minúsculas a mayúsculas.

Cuando el usuario rellena el control, a medida que introduce caracteres válidos de la máscara, éstos se vansituando en su sitio. Si intenta introducir un carácter no válido, el sistema avisará, no interpretará lointroducido y desencadenará el evento MaskInputRejected, en el que podremos codificar aquello quedeseemos.

ESTUDIO DE LOS PRINCIPALES CONTROLES WINDOWS

10

Page 60: Módulo_7_Aplicaciones Windows con VB

Este control no permite introducir varias líneas, por lo que si es necesario, habrá que codificar varioscontroles, uno por línea. Tampoco permite deshacer.

RichTexBox:

Finalmente el control RichTextBox es el más completo de los tres, permite la edición de texto en formatoRTF, con muchas más propiedades de edición de texto que los anteriores y permitiendo cargar el texto, porejemplo, directamente de un archivo RTF. Permite opciones de formato de párrafo y de carácter sobre textoseleccionado y, finalmente, permite el salvado directo a archivo del contenido del control. Lógicamente, notiene las restricciones de tamaño máximo de los otros dos controles, siendo mucho mayor que los 64k delcontrol TextBox o que la simple línea del MaskedTextBox.

ESTUDIO DE LOS PRINCIPALES CONTROLES WINDOWS

11

Page 61: Módulo_7_Aplicaciones Windows con VB

5. Controles de tipo lista

Definición controles de tipo lista

Los controles de tipo lista son los que nos permiten presentar y recuperar la información en formato de lista,esto es una sucesión ordenada de ítems del mismo tipo.Los controles básicos que entran en esta categoría son: CheckedListBox, ComboBox, DomainUpDown, ListBox,ListView, NumericUpDown y TreeView.

Referencia de controles de tipo lista

En las referencias de controles que se pueden añadir a la caja de herramientas, hay muchos más controlesde tipo lista, para funciones muy específicas, pero no vamos a enumerarlos todos.

Para que te hagas una idea del aspecto, aquí tienes una muestra de cada uno.

ESTUDIO DE LOS PRINCIPALES CONTROLES WINDOWS

12

Page 62: Módulo_7_Aplicaciones Windows con VB

6. Crear, configurar y programar menús

MenuStrip y ContextMenuStrip

Para la creación, configuración y programación de menús dispones de un par de clases básicas MenuStrip yContextMenuStrip.

MenuStrip:

Es la encargada de dar la funcionalidad de menú a los formularios. Existen las siguientes clases comopropiedades de MenuStrip: ToolStripMenuItem, ToolStripTextBox, ToolStripComboBox,ToolStripDropDownItem.

MenuStrip es un contenedor para toda la estructura de menús del formulario, a la cual se añaden loselementos anteriores como elementos individuales o encabezados de submenús.

Es en modo diseño, pero lo suficientemente explícito como para comprenderlo.

Lógicamente, cada uno de los elementos del menú dispone de muchas propiedades, las cuales permitiránconfigurar, casi como deseemos, el aspecto visual y el comportamiento de los menús.

En el tema eventos la lista es larga, pero el principal es el evento Click, el cuál permitirá, al igual que enlos Button, codificar el comportamiento que se quiera aportar al programa del elemento de menúseleccionado.

ESTUDIO DE LOS PRINCIPALES CONTROLES WINDOWS

13

Page 63: Módulo_7_Aplicaciones Windows con VB

ContextMenuStrip:

En cambio ContextMenuStrip está asociado a la pulsación del botón derecho sobre algún elemento delformulario. Es lo que se llama menú emergente o contextual y aparecerá para todos aquellos controles a losque se asocie, no es indiscriminado.

Dispone de los mismos elementos que el control MenuStrip, con el mismo funcionamiento implícito.

También permite un amplio espectro de propiedades y métodos para configurarlo como más interese y cadaelemento dispone, entre muchos otros, del evento Click, para codificar adecuadamente su comportamiento.

Modificación por código

Los menús se pueden crear y modificar por código, con lo que no habráningún problema a la hora de personalizarlos o adaptarlos a las circunstanciasde nuestra aplicación.

También se puede controlar el que se muestren o no y mostrarlos a voluntad(especialmente útil con el ContextMenuStrip).

ESTUDIO DE LOS PRINCIPALES CONTROLES WINDOWS

14

Page 64: Módulo_7_Aplicaciones Windows con VB

7. Resumen

Has llegado al final de esta lección de formación que denominamos “Estudio de los principales controlesWindows”. En esta lección hemos estudiado los siguientes contenidos:

ESTUDIO DE LOS PRINCIPALES CONTROLES WINDOWS

15

Page 65: Módulo_7_Aplicaciones Windows con VB

FORMULARIOS MDI

© élogos Conocimiento, S.L. Madrid 2009. Todos los derechos de Propiedad Intelectual e Industrial de esta obra pertenecen a élogos Conocimiento, S.L.

Page 66: Módulo_7_Aplicaciones Windows con VB

ÍNDICE

FORMULARIOS MDI

1. Funcionamiento de los formularios MDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3

2. Formularios padre y formularios hijo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

3. Creación y eliminación de formularios hijo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6

4. Detección de la ventana activa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8

5. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

Page 67: Módulo_7_Aplicaciones Windows con VB

3

FORMULARIOS MDI

1. Funcionamiento de los formularios MDI.

Objetivos y Estructura de la lección

1. Al finalizar esta lección serás capaz de:2. Conocer el funcionamiento de los formularios MDI3. Conocer los formularios padre y formularios hijo4. Crear y eliminar formularios hijo5. Conocer la detección de la ventana activa

Introducción

MDI es el acrónimo de Multiple Document Interface, en castellano Interfaz demúltiples documentos.

Se trata de aquellas aplicaciones de formularios Windows en las cualestenemos un formulario principal a partir del que vamos creando y mostrandoformularios secundarios, o hijos, y vamos controlando nosotros la navegaciónpor los mismos.

Funcionamiento de los formularios

Se trata de una ventana principal de un proceso y tantas sub-ventanas como sea necesario, modales o nomodales.

Las modales no permiten pasar a ninguna otra ventana hasta que no se finalice la interacción con ellas, lasno modales, en cambio, una vez presentadas, permiten que pasar a cualquier otra de las ventanas abiertas,para volver a ellas más tarde.

Formulario Padre

El formulario “padre” es, normalmente, el que contiene el menú principal de nuestra aplicación, y sueletener asignada su propiedad WindowsState a maximizada, para ocupar toda la pantalla y así tener más claroel tema de las sub-ventanas, aunque no es obligatorio.

Page 68: Módulo_7_Aplicaciones Windows con VB

4

FORMULARIOS MDI

Imagina, por ejemplo, la aplicación Excel de office, tienes un formulario principal que es la base de laaplicación y luego puedes tener tantas sub-ventanas como libros de Excel tengas abiertos al mismo tiempo,que se identifican como ventanas, dentro de Excel. Cada libro abierto tiene también sub-ventanas, queserían las pestañas de cada hoja dentro del libro.

En el formulario padre es donde residen todos los menús y barras de herramientas, aunque actuarán sobrela o las celdas seleccionadas o toda la hoja, si esa fuera la selección. Lo mismo se puede aplicar aprácticamente todos los programas de office y muchos de los programas comerciales que utilizamos a diario,aunque no seamos conscientes de ello.”

Page 69: Módulo_7_Aplicaciones Windows con VB

2. Formularios padre y formularios hijo

Añadir formulario hijo

Como ya hemos comentado, el formulario padre es el que contendrá los formularios hijos. Para indicar cuálserá el formulario padre hemos de fijar su propiedad IsMDIContainer a True.

En los formularios hijos habrá que indicar en su propiedad MdiParent una referencia al objeto del formulariopadre que lo contendrá.

Añadir un formulario Hijo en un formulario Padre

Para añadir un formulario hijo dentro de un formulario padre, primero será necesario definir el modelo deformulario que deseamos utilizar, siempre y cuando queramos algún tipo de particularidad o modelo.Podremos partir directamente de la clase Form, ya que se trata de generar una nueva instancia de unformulario para asociarlo, como hijo, al formulario padre y luego mostrarlo.

Si el formulario hijo tiene un menú definido o si alguno de los hijos puede llegar a tenerlo, habrá que indicar,en el formulario padre, que su menú tenga la propiedad MergeType activada con MergeItems. Esto hará quese combinen los menús y se añadan a las opciones del menú del formulario principal las nuevas opcionesaportadas por el menú del formulario hijo.

Añadir una opción del tipo ventana

Dentro del menú del formulario padre es conveniente, siempre que esta funcionalidad sea requerida, añadiruna opción del tipo “Ventanas”, con su propiedad MdiList en True, esto hará que, de forma automática, elsistema gestione la lista de ventanas abiertas y el indicador de cuál es la ventana activa.

En esta opción de menú, se pueden añadir opciones para organizar lasventanas, de la misma forma que se hace en los programas de Office, enmosaico, en cascada o como iconos minimizados, dentro del formulariopadre. Para ello hay que utilizar la propiedad LayoutMdi del formulario padrey asignarle alguno de los valores de la enumeración MdiLayout del sistema.

FORMULARIOS MDI

5

Page 70: Módulo_7_Aplicaciones Windows con VB

3. Creación y eliminación de formularios hijo

Crear formulario

Para poder crear formularios hijo, uno de los primeros requisitos es que en el menú padre haya alguna opciónque permita lanzar dicha creación, ya sea como una opción “Nuevo” en el menú o como resultado de lapulsación de algún botón definido en el mismo.

Como ya hemos comentado, un formulario hijo debe basarse en una clase derivada deSystem.Windows.Forms.Form para poder ser creado.

Como normalmente queremos que nuestros formularios hijos tengan un aspecto y/o funcionalidadesespecíficas, lo adecuado es crear, en tiempo de diseño, el modelo de los formularios que luego crearemoscomo hijos del principal.

Creación de un formulario hijo

En este modelo colocaremos todos los controles que nos vayan a ser necesarios y modificaremos suspropiedades visuales de forma que se adapten a los requerimientos del sistema.

Una vez hecho esto ya dispondremos del “molde” para los formularios hijos.

Cuando en el formulario padre se ejecute la opción queresulte en la creación de un formulario hijo, lanzaremosun New del modelo generado, lo asociaremos al padremediante su opción MdiParent = Me y lo mostraremos consu método Show().

Esto es todo lo que se requiere para la creación deformularios hijos.

Ejemplo con el mínimo

FORMULARIOS MDI

6

Page 71: Módulo_7_Aplicaciones Windows con VB

Este es el formulario padre tal y como aparece al inicio.

Código

Con un hijo creado mediante la opción de menú Archivo -> Nuevo.

Public Class PadrePrivate Sub NuevoToolStripMenuItem_Click(ByVal sender As

System.Object, ByVal e As System.EventArgs) Handles NuevoToolStripMenuItem.ClickDim NuevoHijo As New Hijo()NuevoHijo.MdiParent = MeNuevoHijo.Show()

End SubEnd Class

Y este es todo el código necesario para que funcione.

Para cerrar un formulario hijo, estando éste activo, solo hay que asociar el siguiente código a la opción demenú Archivo -> Cerrar.

Private Sub CerrarToolStripMenuItem_Click(ByVal sender AsSystem.Object, ByVal e As System.EventArgs) Handles CerrarToolStripMenuItem.Click

Me.ActiveMdiChild.Close()End Sub

FORMULARIOS MDI

7

Page 72: Módulo_7_Aplicaciones Windows con VB

4. Detección de la ventana activa

Detección

A veces, tenemos muchas ventanas hijas dentro de un formulario padre y que a la hora de ejecutar uncomando de menú es necesario saber sobre cuál de ellas queremos realmente actuar.

Como ya has podido apreciar en el ejemplo anterior, esta necesidad es tan genérica que disponemos, dentrodel formulario padre, de una propiedad que nos permite saber cuál es la ventana hija activa ActiveMdiChild.

Esta propiedad nos permite, como en el ejemplo anterior, actuar directamente sobre la ventana hija, en casonecesario, o sobre alguno de sus controles contenidos, ya que muchas veces, la acción de la opción de menúno será sobre toda la ventana, sino sólo sobre un texto, imagen o cualquier tipo de control contenido en laventana hija.

FORMULARIOS MDI

8

Page 73: Módulo_7_Aplicaciones Windows con VB

5. Resumen

Has llegado al final de esta lección de formación que denominamos “Programación basada en eventos”. Enesta lección hemos estudiado los siguientes contenidos:

FORMULARIOS MDI

9

Page 74: Módulo_7_Aplicaciones Windows con VB

APLICACIONES WINDOWS CON

VB.NET

© élogos Conocimiento, S.L. Madrid 2009. Todos los derechos de Propiedad Intelectual e Industrial de esta obra pertenecen a élogos Conocimiento, S.L.

Page 75: Módulo_7_Aplicaciones Windows con VB

ÍNDICE

APLICACIONES WINDOWS CON VB.NET

6. DISTRIBUCION DE APLICACIONES WINDOWS

6.1 – Proyectos de instalación de aplicaciones Windows. . . . . . . . . . . . . . . . . . . . . . . . . . .3

6.2 – Propiedades de despliegue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

6.3 – Instalación y despliegue de una aplicación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7

6.4 – La tecnología ClickOnce. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10

Page 76: Módulo_7_Aplicaciones Windows con VB

6.1 – Proyectos de instalación de aplicaciones Windows.

Los proyectos de instalación de aplicaciones Windows, también conocidos como implementación de lasaplicaciones son los que, como su nombre indica, efectúan la instalación de las aplicaciones Windows o desus nuevas versiones en las máquinas de los usuarios y las dejan disponibles para su utilización.

Para efectuar esta implementación, Microsoft dispone de dos metodologías algo similares, en el fondo van arealizar la misma tarea, en algo deberán parecerse.

Las dos tecnologías son, la clásica de empaquetado para Windows Installer y la novedosa ClickOnce.

La primera es la que todos conocemos, se genera un archivo Setup.exe, el usuario lo ejecuta y la aplicaciónse instala en su equipo, con mayor o menor intervención por su parte, según hayamos parametrizado lainstalación.

La segunda está claramente influenciada por el entorno Web, se genera un empaquetado, similar al de latécnica anterior, pero, en este caso, se coloca en una ubicación centralizada o en un servidor Web y seproporciona al usuario un enlace a dicha ubicación. El usuario, al hacer uso del enlace, consigue la instalaciónde la aplicación en su máquina.

Una de las principales diferencias entre ambas tecnologías es que, una vez efectuada la instalación inicial,que en ambos casos puede ser mediante CD o DVD, con Windows Installer el usuario tiene la aplicacióncompletamente instalada en su equipo y la inicia desde ahí, sin cambios hasta la difusión y ejecución de unnuevo Setup.exe, con la posible utilización de recursos del sistema compartidos y la instalación física en lacarpeta de Archivos de programa.

En cambio, con la opción ClickOnce, el usuario ejecuta la instalación de la aplicación mediante el enlace lacual se instalará en su equipo, añadiendo un acceso en el menú inicio y en instalar y quitar programas, perosin instalar nada en la carpeta de Archivos de programa, y sin afectar al registro del equipo.

De hecho, la instalación mediante ClickOnce es privativa del usuario y totalmente independiente del restodel sistema, no hay problemas de DLLs ni nada parecido.

Además, la instalación realizada mediante esta técnica mantiene una referencia permanente a la ubicaciónde instalación y actualización de la aplicación, con lo que, en cuanto el desarrollador publique una nuevaversión en dicha ubicación, el usuario dispondrá de la misma de forma automática, estando la aplicaciónpermanentemente actualizada, evitándose otro de los problemas habituales de las instalaciones deprogramas, las temibles versiones discrepantes e incompatibles.

A continuación va un resumen de las diferencias entre ambas tecnologías.

APLICACIONES WINDOWS CON VB.NET

3

Page 77: Módulo_7_Aplicaciones Windows con VB

Por si no ha quedado claro, Microsoft recomienda que nos pasemos a la nueva tecnología, aunque la deWindows Installer aún tenga mucho que decir, ya que es bastante más flexible a la hora de configurar lainstalación, al menos para el desarrollador, a pesar de que los permisos requeridos para efectuar la instalaciónson mucho más elevados que con ClickOnce.

APLICACIONES WINDOWS CON VB.NET

4

Page 78: Módulo_7_Aplicaciones Windows con VB

6.2 – Propiedades de despliegue.

Como ya hemos comentado, un despliegue o implementación es el proceso con el que generamos un archivocon la solución que hemos desarrollado, incluyendo todos sus proyectos, ensamblados y manifiestos, comoya vimos anteriormente, para que los usuarios, o los administradores del sistema, puedan efectuar lainstalación en sus máquinas.

Antes de poder generar este archivo de instalación es, lógicamente, necesario indicar que es lo que se deseaincluir en él, para lo cual se han de utilizar los proyectos de implementación, que se han de añadir a nuestrasolución, desde el IDE de Visual Studio.

En ellos se indican las instrucciones concretas de instalación de los componentes de nuestra solución en lasmáquinas destino.

Hablo en plural de proyectos de implementación dado que, habitualmente, se genera uno por capa de nuestraaplicación ¿Te acuerdas de las capas de abstracción?

También es posible generar un proyecto de implementación para aquellos módulos que se pueden reutilizaren distintas aplicaciones, copiándolos, al igual que los componentes del módulo, a cada una de las solucionesen las que vaya incluido.

En todo paquete de instalación habrá algún requisito previo a la instalación que las máquinas destino debancumplir, como mínimo, deberá estar instalada la versión del runtime .NET Framework para la que sedesarrolló la aplicación.

Visual Studio detecta automáticamente la mayoría de estos requisitos de componentes de sistema y losincluye en el paquete, cuando hemos incluido proyectos de implementación como forma de indicar quequeremos generar un paquete de instalación.

De todas formas, siempre tendremos acceso a estos componentes, así como a todos los que vayan a ir en elpaquete de implementación mediante las propiedades de proyecto de implementación, en su página depropiedades de configuración, pestaña Generar.

En ella selecciona el botón de requisitos previos y ahí habrá que activar, si no lo está ya, la marca de Crearprograma de instalación o el nombre que tenga en la versión que tengas instalada, para que se genere elprograma con los requisitos de la lista que hayas seleccionado, al margen de los que el sistema haya marcadopor su cuenta.

Como puedes comprobar, si has entrado en las páginas de propiedades del proyecto de implementación, hayun montón de propiedades que puedes establecer para configurar la instalación de tu aplicación, no vamosa entrar en el detalle de todas ellas ya que no acabaríamos nunca, baste saber que, para la mayoría de los

APLICACIONES WINDOWS CON VB.NET

5

Page 79: Módulo_7_Aplicaciones Windows con VB

proyectos, puedes dejar las opciones por defecto y te funcionará todo perfectamente. Quizás te sea útilespecificar la carpeta destino, pero poco más, al menos en cuanto a las propiedades generales del proyectode implementación.

Por otra parte tenemos las propiedades dependientes de la configuración, estas ya son un poco más especialesdebido a que cada versión del .NET Framework tiene algunos requisitos ligeramente diferentes de las demásy, encima, cada versión de Visual Studio las presenta de una forma diferente.

Por lo que mostrarte un interfaz medianamente común es un poco complicado.

Básicamente, en el explorador de soluciones pinchas en el nombre del proyecto de implementación, en elmenú ver selecciona las páginas de propiedades (normalmente es la última opción del sub-menú Ver) y ahítendrás un ComboBox en el que seleccionar la configuración a parametrizar o dispondrás de las adecuadaspestañas al efecto.

Una de las disponibles es todas las configuraciones, la cual llega a ser útil si no hay demasiadas diferenciasentre configuraciones, se fija todo de una sentada y luego, si es necesario, se entra de una en una a hacerlos cambios necesarios.

APLICACIONES WINDOWS CON VB.NET

6

Page 80: Módulo_7_Aplicaciones Windows con VB

6.3 – Instalación y despliegue de una aplicación.

Para generar un proyecto de implementación lo primero es, como ya hemos comentado, agregar uno deestos proyectos a tu solución.

Después habrá que configurar sus propiedades, tal y como se ha visto en el apartado anterior.

Lo siguiente, en buena lógica, es decir qué quieres incluir en ese proyecto de implementación que acabasde parametrizar y dónde quieres que se instale.

Para ello deberás agregar los resultados del proyecto, los archivos, módulos y/o ensamblados que desees enalguno de los editores de implementación disponibles:

- Editor del sistema de archivos

- Editor del Registro

- Editor de tipos de archivos

- Editor de la interfaz de usuario

- Editor de acciones personalizadas

- Editor de condiciones de inicio

Como puedes ver, todo un surtido, pero tranquilo, no es imprescindible actuar en todos ellos.

Cuando agregas un proyecto de implementación a tu solución se muestra, por defecto, el editor del sistemade archivos, que es en el que normalmente más has de actuar.

Para cambiar de un editor a otro, pinchas el nombre del proyecto de implementación en el explorador desoluciones y en el menú Ver, seleccionas Editor y ahí indicas en cual deseas trabajar.

Como siempre Microsoft ofrece otra forma de acceder a estos editores, si te fijas en la cabecera delexplorador de soluciones, al pinchar el nombre del proyecto de implementación aparecen seis nuevosbotones, causalmente, uno por cada tipo de editor.

APLICACIONES WINDOWS CON VB.NET

7

Page 81: Módulo_7_Aplicaciones Windows con VB

Un ejemplo de proyecto de implementación, sobre la base del ejemplo de los formularios MDI podría ser elsiguiente:

Con esto ya se podría generar el proyecto de implementación correspondiente y el exe resultante se podríautilizar para instalar la aplicación en cualquier ordenador con sistema operativo Windows, al llevarincorporada la instalación del runtime de .NET Framework 3.5 SP1, que es la que tengo instalada en mimáquina actualmente.

Dicho ejecutable lo puedes localizar, dentro de la carpeta en la que hayas indicado que se archive la solución,en la ruta \Setup1\Release, siendo Setup1 el nombre del proyecto de implementación, ya que he dejado elnombre por defecto, como habrás observado en el explorador de soluciones.

Ahora ya sólo queda la ejecución del .exe.

APLICACIONES WINDOWS CON VB.NET

8

Page 82: Módulo_7_Aplicaciones Windows con VB

Como ves, las pantallas habituales de las instalaciones, y como no cambié el nombre, para ejecutarel programa he de llamar a Setup1.exe en la carpeta indicada.

APLICACIONES WINDOWS CON VB.NET

9

Page 83: Módulo_7_Aplicaciones Windows con VB

6.4 – La tecnología ClickOnce.

Como ya hemos comentado anteriormente, la tecnología ClickOnce es la que te permite la publicación detus aplicaciones Windows de la misma forma en que se publican las aplicaciones Web, con la facilidad queello conlleva y la sencillez de implantación de nuevas versiones.

Esta tecnología está disponible para Visual Basic y C#, pero no lo está, por ejemplo, para C++, por lo que, siutilizas un lenguaje de programación distinto de los mencionados, asegúrate de que la tecnología lo soporteantes de decidirte por ella.

Para que los usuarios puedan acceder a tu aplicación has de publicarla con ClickOnce en un servidor Web,en un servidor de archivos compartido o en algún soporte (CD, DVD,…) que les suministres posteriormente.

Hay un estupendo asistente para publicación que nos facilita esta tarea ya que la mayoría de las propiedadesse establecen por defecto desde el asistente, aunque después las tenemos disponibles para su modificacióndesde la página Publicar del Diseñador de proyectos.

Para publicar una aplicación, tomo como base el ejemplo de controles que ya vimos (el del browser), hayque pulsar el botón derecho sobre el nombre del proyecto en el explorador de soluciones y seleccionarPublicar, entonces aparecerá el asistente de publicación, cuyas pantallas iremos viendo a continuación,aunque en su versión en inglés.

APLICACIONES WINDOWS CON VB.NET

10

Page 84: Módulo_7_Aplicaciones Windows con VB

APLICACIONES WINDOWS CON VB.NET

11

Page 85: Módulo_7_Aplicaciones Windows con VB

Al finalizar, el asistente te muestra la carpeta de destino seleccionada, con el contenido generado.

El Setup.exe que ves ya es ejecutable e instalaría la aplicación en cualquier máquina, aunque en este caso,sin control de cambio de versiones, ya que al ser instalación desde dispositivo extraíble, no ha lugar, aunquelo podríamos haber llegado a especificar en la pantalla correspondiente, para que la instalación fuera sinconexión, pero que al ejecutar hubiera una validación de cambios.

Lo he probado en mi equipo y ha generado, en el menú Inicio una carpeta con el nombre “Propia” y dentrode ella el acceso directo al programa “Controles” que es como se llamaba el proyecto original.

Al pulsar en dicho enlace, me ha abierto el programa y este ha funcionado perfectamente.

APLICACIONES WINDOWS CON VB.NET

12

Page 86: Módulo_7_Aplicaciones Windows con VB

EN RESUMEN

Hemos visto que hay tienes dos tecnologías distintas para la generación de paquetes instaladorespara tus aplicaciones, la de Windows Installer y la de ClickOnce, cada una con sus ventajas einconvenientes.

ClickOnce está fuertemente orientada al soporte Web y a la actualización automática deversiones, mientras que la del Windows Installer es más flexible, aunque las actualizaciones noestán soportadas.

APLICACIONES WINDOWS CON VB.NET

13

Page 87: Módulo_7_Aplicaciones Windows con VB

APLICACIONESWINDOWS CON

VB.NET

© élogos Conocimiento, S.L. Madrid 2009. Todos los derechos de Propiedad Intelectual e Industrial de esta obra pertenecen a élogos Conocimiento, S.L.

Page 88: Módulo_7_Aplicaciones Windows con VB

TRABAJANDO CON CONTROLES. CLASES DE LOS PRINCIPALES CONTROLES

Controles.

Son una serie de elementos gráficos que permiten interactuar con el usuario, algunos de estos controles yalos hemos visto en temas anteriores pero de una manera superficial, en este tema vamos a profundizar entodos ellos.

Botón de comando

Es el típico botón que cualquier aplicación Windows dispone, normalmente esta destinado a realizar unaserie de tareas como respuesta al pinchado del usuario sobre él.

Vamos a ver un listado con todas las características posibles de este control.

PROPIEDADES PÚBLICAS

AccessibilityObjectObtiene AccessibleObject asignado al control.

AccessibleDefaultActionDescriptionLee o escribe la descripción de la acción predeterminada del control que las aplicaciones cliente deaccesibilidad utilizan.

AccessibleDescription Lee o escribe la descripción del control que las aplicaciones cliente de accesibilidad utilizan.

AccessibleNameLee o escribe el nombre del control que las aplicaciones cliente de accesibilidad utilizan.

AccessibleRoleLee o escribe la función accesible del control.

AllowDropLee o escribe un valor que indica si el control puede aceptar los datos que el usuario arrastra almismo.

APLICACIONES WINDOWS CON VB.NET

2

Page 89: Módulo_7_Aplicaciones Windows con VB

AnchorLee o escribe los bordes del control que se ajustan a los bordes de su contenedor.

BackColorLee o escribe el color de fondo del control.

BackgroundImageLee o escribe la imagen de fondo que se muestra en el control.

BindingContext Lee o escribe BindingContext del control.

Bottom Obtiene la distancia que existe entre el borde inferior del control y el borde superior del área cliente de sucontenedor.

Bounds Lee o escribe el tamaño y la ubicación del control.

CanFocus Obtiene un valor que indica si el control puede recibir el foco.

CanSelect Obtiene un valor que indica si el control se puede seleccionar.

Capture Lee o escribe un valor que indica si el control ha capturado el mouse (ratón).

CausesValidation Lee o escribe un valor que indica si el control hace que se realice una validación de todos los controles querequieren validación cuando reciben el foco.

ClientRectangle Obtiene el rectángulo que representa el área cliente del control.

ClientSize Lee o escribe el alto y el ancho del área cliente del control.

APLICACIONES WINDOWS CON VB.NET

3

Page 90: Módulo_7_Aplicaciones Windows con VB

CompanyName Obtiene el nombre de la compañía o del creador de la aplicación que contiene el control.

Container Obtiene IContainer que contiene Component.

ContainsFocus Obtiene un valor que indica si el control, o uno de sus controles secundarios, tiene el foco de entrada en laactualidad.

ContextMenu Lee o escribe el menú contextual asociado al control.

Controls Obtiene la colección de controles que contiene el control.

Created Obtiene un valor que indica si se ha creado el control.

Cursor Lee o escribe el cursor que se muestra cuando el puntero del mouse se sitúa sobre el control.

DataBindings Obtiene los enlaces de datos del control.

DialogResultLee o escribe un valor que se devuelve al formulario principal cuando se hace clic en el botón.

DisplayRectangle Obtiene el rectángulo que representa el área de presentación del control.

Disposing Obtiene un valor que indica si el control está en proceso de eliminación.

Dock Lee o escribe el borde del contenedor principal al que está acoplado un control.

Enabled Lee o escribe un valor que indica si el control puede responder a la interacción del usuario.

APLICACIONES WINDOWS CON VB.NET

4

Page 91: Módulo_7_Aplicaciones Windows con VB

FlatStyleLee o escribe la apariencia de estilo plano del control de botón.

Focused Obtiene un valor que indica si el control tiene el foco de entrada.

Font Lee o escribe la fuente del texto que muestra el control.

ForeColor Lee o escribe el color de primer plano del control.

Handle Obtiene el identificador de ventana al que está enlazado el control.

HasChildren Obtiene un valor que indica si el control contiene uno o más controles secundarios.

Height Lee o escribe el alto del control.

ImageLee o escribe la imagen que se muestra en un control de botón.

ImageAlignLee o escribe la alineación de la imagen en el control de botón.

ImageIndexLee o escribe el valor de índice de la lista de imágenes correspondiente a la imagen mostrada en el controlde botón.

ImageListLee o escribe el objeto ImageList que contiene el objeto Image que se muestra en un control de botón.

ImeModeLee o escribe el modo del Editor de métodos de entrada (IME) que este control admite.

APLICACIONES WINDOWS CON VB.NET

5

Page 92: Módulo_7_Aplicaciones Windows con VB

InvokeRequired Obtiene un valor que indica si el llamador debe llamar a un método de invocación cuando realiza llamadasa métodos del control porque el llamador se encuentra en un subproceso distinto al del control donde se creó.

IsAccessible Lee o escribe un valor que indica si el control es visible para las aplicaciones de accesibilidad.

IsDisposed Obtiene un valor que indica si el control se ha eliminado.

IsHandleCreated Obtiene un valor que indica si el control tiene un identificador asociado.

Left Lee o escribe la coordenada x del borde izquierdo de un control, en píxeles.

Location Lee o escribe las coordenadas de la esquina superior izquierda del control en relación con la esquina superiorizquierda de su contenedor.

Name Lee o escribe el nombre del control.

Parent Lee o escribe el contenedor principal del control.

ProductName Obtiene el nombre de producto del ensamblado que contiene el control.

ProductVersion Obtiene la versión del ensamblado que contiene el control.

RecreatingHandle Obtiene un valor que indica si el control está volviendo a crear su identificador en la actualidad.

Region Lee o escribe la región de ventana asociada al control.

APLICACIONES WINDOWS CON VB.NET

6

Page 93: Módulo_7_Aplicaciones Windows con VB

Right Obtiene la distancia entre el borde derecho del control y el borde izquierdo de su contenedor.

RightToLeft Lee o escribe un valor que indica si los elementos del control se alinean para admitir configuracionesregionales utilizando fuentes de derecha a izquierda.

Site Lee o escribe el sitio del control.

Size Lee o escribe el alto y el ancho del control.

TabIndex Lee o escribe el orden de tabulación del control en su contenedor.

TabStop Lee o escribe un valor que indica si el usuario puede dar el foco a este control mediante la tecla TAB.

Tag Lee o escribe un dato cualquiera que el desarrollador desee, no afecta ni al aspecto ni a la funcionalidad delcontrol.

Text Lee o escribe el texto asociado al control y que se muestra en su superficie.

TextAlignLee o escribe la alineación del texto en el control de botón.

Top Lee o escribe la coordenada Y del borde superior del control, en píxeles.

TopLevelControl Obtiene el control principal que no es secundario de ningún otro control de formularios Windows Forms.Normalmente, se trata del Form más externo en el que está contenido el control.

Visible Lee o escribe un valor que indica si se muestra el control.

Width Lee o escribe el ancho del control.

APLICACIONES WINDOWS CON VB.NET

7

Page 94: Módulo_7_Aplicaciones Windows con VB

MÉTODOS PÚBLICOS

BeginInvoke Ejecuta un delegado de forma asincrónica en el subproceso donde se creó el identificador subyacente delcontrol.

BringToFront Coloca el control al principio del orden Z.

Contains Obtiene un valor que indica si el control especificado es un control secundario del control.

CreateControl Obliga a que se cree el control, incluidos el identificador y los controles secundarios.

CreateGraphics Crea el objeto Graphics para el control.

CreateObjRefCrea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado paracomunicarse con un objeto remoto.

DisposeLibera los recursos utilizados por el control, lo elimina expresamente de la memoria sin necesidad de esperara que lo haga el CLR.

DoDragDrop Inicia una operación de arrastrar y colocar.

EndInvoke Recupera el valor devuelto por la operación asíncrona representada por el objeto IAsyncResult que se pasa.

EqualsDetermina si dos instancias de Object son iguales.

FindForm Recupera el formulario en el que se encuentra el control.

APLICACIONES WINDOWS CON VB.NET

8

Page 95: Módulo_7_Aplicaciones Windows con VB

Focus Establece el foco de entrada en el control.

GetChildAtPoint Recupera el control secundario ubicado en las coordenadas especificadas.

GetContainerControl Devuelve el siguiente ContainerControl (en sentido ascendente) de la cadena de controles principales delcontrol.

GetHashCodeSirve como función hash para un tipo concreto, apropiado para su utilización en algoritmos de hash yestructuras de datos como las tablas hash.

GetLifetimeServiceRecupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

GetNextControl Recupera el siguiente control, hacia delante o hacia atrás, en el orden de tabulación de controlessecundarios.

GetType Obtiene el objeto Type de la instancia actual.

Hide Oculta el control al usuario.

InitializeLifetimeServiceObtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

Invalidate Invalida una región específica del control y hace que se envíe un mensaje de dibujo al control.

Invoke Ejecuta un delegado en el subproceso que posee el identificador de ventana subyacente del control.

PerformClickGenera un evento Click para un botón.

APLICACIONES WINDOWS CON VB.NET

9

Page 96: Módulo_7_Aplicaciones Windows con VB

PerformLayout Obliga al control a aplicar la lógica de diseño a los controles secundarios.

PointToClient Calcula la ubicación del punto especificado de la pantalla, en coordenadas de cliente.

PointToScreen Calcula la ubicación del punto especificado de cliente en coordenadas de pantalla.

PreProcessMessage Preprocesa los mensajes de entrada en el bucle de mensajes antes de enviarlos.

RectangleToClient Calcula el tamaño y la ubicación del rectángulo de pantalla especificado, en coordenadas de cliente.

RectangleToScreen Calcula el tamaño y la ubicación del rectángulo de cliente especificado, en coordenadas de pantalla.

Refresh Obliga al control a invalidar su área cliente y, acto seguido, obliga a que vuelva a dibujarse el control y suscontroles secundarios.

ResetBackColor Restablece el valor predeterminado de la propiedad BackColor.

ResetBindings Restablece el valor predeterminado de la propiedad DataBindings.

ResetCursor Restablece el valor predeterminado de la propiedad Cursor.

ResetFont Restablece el valor predeterminado de la propiedad Font.

ResetForeColor Restablece el valor predeterminado de la propiedad ForeColor.

APLICACIONES WINDOWS CON VB.NET

10

Page 97: Módulo_7_Aplicaciones Windows con VB

ResetImeMode Restablece el valor predeterminado de la propiedad ImeMode.

ResetRightToLeft Restablece el valor predeterminado de la propiedad RightToLeft.

ResetText Restablece el valor predeterminado de la propiedad Text.

ResumeLayout Reanuda la lógica de diseño habitual.

Scale Ajusta la escala del control y de todos los controles secundarios.

Select Activa un control.

SelectNextControl Activa el siguiente control.

SendToBack Envía el control al final del orden Z de superposición de objetos.

SetBounds Establece los límites del control.

Show Muestra el control al usuario.

SuspendLayout Suspende temporalmente la lógica de diseño del control.

ToStringVea Object.ToString.

Update Hace que el control vuelva a dibujar las regiones invalidadas con su área cliente.

APLICACIONES WINDOWS CON VB.NET

11

Page 98: Módulo_7_Aplicaciones Windows con VB

EVENTOS PÚBLICOS

BackColorChanged Se dispara cuando el valor de la propiedad BackColor cambia.

BackgroundImageChanged Se dispara cuando el valor de la propiedad BackgroundImage cambia.

BindingContextChanged Se produce cuando el valor de la propiedad BindingContext cambia.

CausesValidationChanged Se produce cuando el valor de la propiedad CausesValidation cambia.

ChangeUICues Se produce cuando cambian las guías de la interfaz de usuario para el foco o el teclado.

Click Se produce cuando se hace clic en el control.

ContextMenuChanged Se produce cuando el valor de la propiedad ContextMenu cambia.

ControlAdded Se produce cuando se agrega un nuevo control a Control.ControlCollection.

ControlRemoved Se produce cuando se quita un control de Control.ControlCollection.

CursorChanged Se produce cuando el valor de la propiedad Cursor cambia.

DisposedAgrega un controlador de eventos para escuchar al evento Disposed en el componente.

DockChanged Se produce cuando el valor de la propiedad Dock cambia.

APLICACIONES WINDOWS CON VB.NET

12

Page 99: Módulo_7_Aplicaciones Windows con VB

DragDrop Se produce cuando termina una operación de arrastrar y colocar.

DragEnter Se produce cuando se arrastra un objeto dentro de los límites del control.

DragLeave Se produce cuando se arrastra un objeto fuera de los límites del control.

DragOver Se produce cuando se arrastra un objeto sobre los límites del control.

EnabledChanged Se produce cuando cambia el valor de la propiedad Enabled.

Enter Se produce cuando se entra en el control.

FontChanged Se produce cuando cambia el valor de la propiedad Font.

ForeColorChanged Se produce cuando cambia el valor de la propiedad ForeColor.

GiveFeedback Se produce durante una operación de arrastre.

GotFocus Se produce cuando el control recibe el foco.

HandleCreated Se produce cuando se crea un identificador para el control.

HandleDestroyed Se produce cuando el identificador del control está en proceso de eliminación.

HelpRequested Se produce cuando el usuario solicita ayuda para un control.

APLICACIONES WINDOWS CON VB.NET

13

Page 100: Módulo_7_Aplicaciones Windows con VB

ImeModeChanged Se produce cuando cambia la propiedad ImeMode.

Invalidated Se produce cuando es necesario volver a dibujar un control.

KeyDown Se produce cuando se presiona una tecla mientras el control tiene el foco.

KeyPress Se produce cuando se presiona una tecla mientras el control tiene el foco.

KeyUp Se produce cuando se suelta una tecla mientras el control tiene el foco.

Layout Se produce cuando un control debe volver a colocar sus controles secundarios.

Leave Se produce cuando el foco de entrada deja el control.

LocationChanged Se dispara cuando cambia el valor de la propiedad Location.

LostFocus Se dispara cuando el control pierde el foco.

MouseDown Se dispara cuando el puntero del mouse está sobre el control y se presiona un botón del mouse.

MouseEnter Se dispara cuando el puntero del ratón entra en el control.

MouseHover Se dispara cuando el puntero del ratón se sitúa encima del control.

MouseLeave Se dispara cuando el puntero del ratón deja el control.

APLICACIONES WINDOWS CON VB.NET

14

Page 101: Módulo_7_Aplicaciones Windows con VB

MouseMove Se dispara cuando el puntero del ratón se mueve sobre el control.

MouseUp Se dispara cuando el puntero del ratón está encima del control y se suelta un botón del ratón.

MouseWheel Se dispara cuando la rueda del ratón se mueve mientras el control tiene el foco.

Move Se dispara cuando se mueve el control.

Paint Se dispara cuando vuelve a dibujarse el control.

ParentChanged Se dispara cuando cambia el valor de la propiedad Parent.

QueryAccessibilityHelp Se dispara cuando AccessibleObject proporciona ayuda para aplicaciones de accesibilidad.

QueryContinueDrag Se dispara durante una operación de arrastrar y colocar y permite al origen de arrastre determinar si laoperación de arrastrar y colocar tiene que cancelarse.

Resize Se dispara cuando se cambia el tamaño del control.

RightToLeftChanged Se dispara cuando cambia el valor de la propiedad RightToLeft.

SizeChanged Se dispara cuando cambia el valor de la propiedad Size.

StyleChanged Se dispara cuando cambia el estilo del control.

SystemColorsChanged Se dispara cuando se modifican los colores del sistema.

APLICACIONES WINDOWS CON VB.NET

15

Page 102: Módulo_7_Aplicaciones Windows con VB

TabIndexChanged Se dispara cuando cambia el valor de la propiedad TabIndex.

TabStopChanged Se dispara cuando cambia el valor de la propiedad TabStop.

TextChanged Se dispara cuando cambia el valor de la propiedad Text.

Validated Se dispara cuando finaliza la validación del control.

Validating Se dispara cuando el control se está validando.

VisibleChanged Se dispara cuando cambia el valor de la propiedad Visible.

De la lista anterior solamente voy a comentar las posibilidades que personalmente veo más importantes oque considero que, con las explicaciones anteriores, hay más dificultades en entender. Esta mismaconsideración la voy a hacer con el resto de los controles del tema.

Las primeras propiedades de esta lista, todas aquellas que empiezan con Accesible, son un grupo depropiedades orientadas al diseño de accesibilidad de las aplicaciones Windows, una serie de especificacionesque da Microsoft para hacer aplicaciones mas accesibles a usuarios discapacitados, de manera que puedanmanejar todos estos controles sin necesidad de la utilización de los dispositivos tradicionales, como puedaser el ratón.

Fijado de un botón a los bordes de su contenedor.

Al fijar un botón a uno o varios bordes de su contenedor que normalmente suele ser un formulario,conseguimos que cuando se cambie el tamaño del formulario el botón se desplace o bien cambie de tamañopara mantener la misma distancia entre el control y su contenedor.

Esto se consigue mediante la propiedad Anchor, existen varios valores posibles para esta propiedad como son:Button, Left, Top, Right y None, que se pueden establecer tanto en modo diseño como en modo ejecución.

APLICACIONES WINDOWS CON VB.NET

16

Page 103: Módulo_7_Aplicaciones Windows con VB

En modo diseño hay que tener cuidado después de seleccionar una opción de la ventana que se muestra:

Porque una vez elegido el o los bordes que se desea anclar del control hay que volver a pinchar en la cajade propiedades para que la capte el VB, si se pincha en otra propiedad puede dar un error.

Si se desea establecer estas propiedades en código es necesario que se teclee lo siguiente:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Button1.Anchor = AnchorStyles.Right Or AnchorStyles.LeftEnd Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Button1.Anchor = AnchorStyles.Left Or AnchorStyles.TopEnd Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

Button1.Anchor = AnchorStyles.Left And AnchorStyles.RightEnd Sub

En este código cuando se pulsa al primer botón de mi formulario se va a anclar el borde izquierdo y derechodel botón al formulario, de forma que si el usuario cambia la anchura del mismo se va a observar que va acambiar la anchura del botón. Cuando se pulse al segundo botón del formulario se va a establecer el ancladopor defecto de los controles, que es arriba y a la izquierda, de forma que aunque el usuario cambie el anchodel formulario no vamos a ve que sucede nada ni en la posición ni en el tamaño del botón.

APLICACIONES WINDOWS CON VB.NET

17

Page 104: Módulo_7_Aplicaciones Windows con VB

Cuando se pulsa al primer botón observamos que cuando se cambia el tamaño del formulario tanto en anchuracomo en altura, el botón se va a ir desplazando relativamente al nuevo tamaño del formulario pero sincambiar el tamaño del botón, lo que determina esta funcionalidad es el uso del operador and en vez del or.

Alinear un botón a una parte especifica de su contenedor.

Se pretende que el botón ocupe o toda la parte superior o inferior, izquierda o derecha o incluso toda lasuperficie de su contenedor que habitualmente es un formulario.

Esto se consigue mediante la propiedad Dock, que muestra la siguiente ventana:

En ella podemos especificar el área del contenedor donde deseamos que se ubique el botón, si pulsamos elbotón central toda la superficie del contenedor va a estar ocupada por el botón, si pulsamos None, vamos adesactivar el acoplamiento del botón anteriormente establecido.

Mediante esta propiedad podemos tener formularios por ejemplo con el siguiente aspecto:

APLICACIONES WINDOWS CON VB.NET

18

Page 105: Módulo_7_Aplicaciones Windows con VB

Establecer el valor de Retorno de un botón en un formulario.

Se persigue que cualquier botón que pueda estar en un formulario, cuando este se muestra como un cuadrode dialogo, devuelva un valor especifico de resultado, es decir que cuando el usuario cierre este cuadro dedialogo se pueda captar este valor y tratar.

Vamos a ver un trozo de código que nos puede ayudar a comprender esta particularidad.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim ventana As New dialogo1()ventana.ShowDialog()MessageBox.Show(ventana.DialogResult.ToString)

End Sub

En este código se supone que he añadido un formulario a mi proyecto que lo he llamado dialogo1.

Vamos a declarar una variable para un objeto de este tipo de formulario, después abro el formulario demanera modal, es decir obligatoriamente el usuario ha de hacer algo en él, porque no puede interactuar conninguna otra ventana.

Finalmente muestro el resultado de la interacción del usuario con este formulario.

En este formulario dialogo1, he añadido cuatro botones, mediante la propiedad Dialgoresult he especificadouno de los siguientes valores:

None , Ok,Cancel , Abort , Retry , Ignore Yes, No

Es decir que este programa precisamente lo que muestra es uno de estos valores según el botón que se hayapulsado del cuadro de diálogo.

Cambiar dinámicamente la posición y el tamaño de un botón.

Vamos a ver un trozo de código para entender esta posibilidad.

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Button2.Size = New System.Drawing.Size(300, 300)Button2.Location = New System.Drawing.Point(100, 100)

End Sub

APLICACIONES WINDOWS CON VB.NET

19

Page 106: Módulo_7_Aplicaciones Windows con VB

Obsérvese que se crea un nuevo objeto Size y un nuevo objeto Point, en size se especifica la anchura y laaltura, mientras que en point la distancia horizontal y vertical desde la esquina superior izquierda delformulario hasta la esquina superior izquierda del botón. Las unidades vienen expresadas en pixels.

Cambiar el estilo de presentación de un botón.

Existen cuatro estilos posibles, que se pueden establecer a través de la propiedad FlatStyle, estos son:

Flat Es un botón plano que cuando se pasa el ratón por encima cambia de color.

PopUpEs un botón plano, que cuando se pasa el ratón por encima aparece en sobre relieve.

StandardEl botón tradicional.

SystemBotón que no puede tener color en su superficie.

Alineación de una imagen en un botón.

Cuando hemos introducido una imagen en un botón mediante la propiedad image, no medianteBackgroundimage, es posible utilizar la propiedad ImageAlign, mostrándosenos la siguiente ventana:

Que permite especificar la posición dentro de la superficie del botón donde deseamos que se alinee laimagen.

Imágenes transparentes en superficie de un botón.

APLICACIONES WINDOWS CON VB.NET

20

Page 107: Módulo_7_Aplicaciones Windows con VB

Veremos esta característica cuando hable del control ImageList posteriormente en este capítulo.

Caja de texto

Es un control que permite visualizar e introducir datos a un usuario.

Vamos a ver un listado con todas las particularidades de este control.

PROPIEDADES PÚBLICAS

AcceptsReturnLee o escribe un valor que indica si, al presionar INTRO en un control TextBox multilínea, se crea una nuevalínea de texto en el control o se activa el botón predeterminado del formulario.

AcceptsTab Lee o escribe un valor que indica si al presionar la tecla TAB en un control de cuadro de texto multilínea seavanza un tope de tabulación en el control en lugar de moverse el foco al siguiente control en el orden detabulación.

AccessibilityObject Obtiene AccessibleObject asignado al control.

AccessibleDefaultActionDescription Lee o escribe la descripción de la acción predeterminada del control que las aplicaciones cliente deaccesibilidad utilizan.

AccessibleDescription Lee o escribe la descripción del control que las aplicaciones cliente de accesibilidad utilizan.

APLICACIONES WINDOWS CON VB.NET

21

Page 108: Módulo_7_Aplicaciones Windows con VB

AccessibleName Lee o escribe el nombre del control que las aplicaciones cliente de accesibilidad utilizan.

AccessibleRole Lee o escribe la función accesible del control.

AllowDrop Lee o escribe un valor que indica si el control puede aceptar los datos que el usuario arrastra al mismo.

Anchor Lee o escribe los bordes del control que se acoplan a los bordes de su contenedor.

AutoSize Lee o escribe un valor que indica si el alto del control se ajusta automáticamente cuando se cambia la fuenteasignada al control.

BackColor Lee o escribe el color de fondo del control.

BackgroundImage Lee o escribe la imagen de fondo que se muestra en el control.

BindingContext Lee o escribe BindingContext del control.

BorderStyle Lee o escribe el tipo de borde del control de cuadro de texto.

Bottom Obtiene la distancia que existe entre el borde inferior del control y el borde superior del área cliente de sucontenedor.

Bounds Lee o escribe el tamaño y la ubicación del control.

CanFocus Obtiene un valor que indica si el control puede recibir el foco.

APLICACIONES WINDOWS CON VB.NET

22

Page 109: Módulo_7_Aplicaciones Windows con VB

CanSelect Obtiene un valor que indica si el control se puede seleccionar.

CanUndo Obtiene un valor que indica si el usuario puede deshacer la operación anterior realizada en un control decuadro de texto.

Capture Lee o escribe un valor que indica si el control ha capturado el ratón.

CausesValidation Lee o escribe un valor que indica si el control hace que se realice una validación de todos los controles querequieren validación cuando reciben el foco.

CharacterCasingLee o escribe si el control TextBox modifica la condición de mayúscula o minúscula de los caracteres a medidaque se escriben.

ClientRectangle Obtiene el rectángulo que representa el área cliente del control.

ClientSize Lee o escribe el alto y el ancho del área cliente del control.

CompanyName Obtiene el nombre de la compañía o del creador de la aplicación que contiene el control.

ContainerObtiene IContainer que contiene Component.

ContainsFocus Obtiene un valor que indica si el control, o uno de sus controles secundarios, tiene el foco de entrada en laactualidad.

ContextMenu Lee o escribe el menú contextual asociado al control.

Controls Obtiene la colección de controles que contiene el control.

APLICACIONES WINDOWS CON VB.NET

23

Page 110: Módulo_7_Aplicaciones Windows con VB

Created Obtiene un valor que indica si se ha creado el control.

Cursor Lee o escribe el cursor que se muestra cuando el puntero del ratón se sitúa sobre el control.

DataBindings Obtiene los enlaces de datos del control.

DisplayRectangle Obtiene el rectángulo que representa el área de presentación del control.

Disposing Obtiene un valor que indica si el control está en proceso de eliminación.

Dock Lee o escribe el borde del contenedor principal al que está acoplado un control.

Enabled Lee o escribe un valor que indica si el control puede responder a la interacción del usuario.

Focused Obtiene un valor que indica si el control tiene el foco de entrada.

Font Lee o escribe la fuente del texto que muestra el control.

ForeColor Lee o escribe el color de primer plano del control.

Handle Obtiene el identificador de ventana al que está enlazado el control.

HasChildren Obtiene un valor que indica si el control contiene uno o más controles secundarios.

Height Lee o escribe el alto del control.

APLICACIONES WINDOWS CON VB.NET

24

Page 111: Módulo_7_Aplicaciones Windows con VB

HideSelection Lee o escribe un valor que indica si el texto seleccionado en el control de cuadro de texto continúa resaltadocuando el control pierde foco.

ImeMode Lee o escribe el modo de Editor de métodos de entrada (IME) del control.

InvokeRequired Obtiene un valor que indica si el llamador debe llamar a un método de invocación cuando realiza llamadasa métodos del control porque el llamador se encuentra en un subproceso distinto al del control donde se creó.

IsAccessible Lee o escribe un valor que indica si el control es visible para las aplicaciones de accesibilidad.

IsDisposed Obtiene un valor que indica si el control se ha eliminado.

IsHandleCreated Obtiene un valor que indica si el control tiene un identificador asociado.

Left Lee o escribe la coordenada x del borde izquierdo de un control, en píxeles.

Lines Lee o escribe las líneas de texto de un control de cuadro de texto.

Location Lee o escribe las coordenadas de la esquina superior izquierda del control en relación con la esquina superiorizquierda de su contenedor.

MaxLength Lee o escribe el número máximo de caracteres que el usuario puede escribir en el control de cuadro detexto.

Modified Lee o escribe un valor que indica que el usuario ha modificado el control de cuadro de texto desde que secreó el control o se estableció su contenido por última vez.

APLICACIONES WINDOWS CON VB.NET

25

Page 112: Módulo_7_Aplicaciones Windows con VB

Multiline Lee o escribe un valor que indica si se pueden escribir múltiples líneas de texto en el control.

Name Lee o escribe el nombre del control.

Parent Lee o escribe el contenedor principal del control.

PasswordCharLee o escribe los caracteres utilizados para ocultar caracteres de una contraseña en un control TextBox deuna sola línea. Estos caracteres pueden ser cualquiera aunque habitualmente es el asterisco.

PreferredHeight Obtiene el alto preferido para un cuadro de texto de una sola línea.

ProductName Obtiene el nombre de producto del ensamblado que contiene el control.

ProductVersion Obtiene la versión del ensamblado que contiene el control.

ReadOnly Lee o escribe un valor que indica si el texto del cuadro de texto es de sólo lectura.

RecreatingHandle Obtiene un valor que indica si el control está volviendo a crear su identificador en la actualidad.

Region Lee o escribe la región de ventana asociada al control.

Right Obtiene la distancia entre el borde derecho del control y el borde izquierdo de su contenedor.

RightToLeft Lee o escribe un valor que indica si los elementos del control se alinean para admitir configuracionesregionales utilizando fuentes de derecha a izquierda.

APLICACIONES WINDOWS CON VB.NET

26

Page 113: Módulo_7_Aplicaciones Windows con VB

ScrollBarsLee o escribe qué barras de desplazamiento tienen que aparecer en un control TextBox multilínea, puedenser horizontal, vertical, ambas o ninguna.

SelectedText Lee o escribe un valor que indica el texto seleccionado actualmente en el control.

SelectionLength Lee o escribe el número de caracteres seleccionados en el cuadro de texto.

SelectionStart Lee o escribe el punto de inicio del texto seleccionado en el cuadro de texto.

Site Lee o escribe el sitio del control.

Size Lee o escribe el alto y el ancho del control.

TabIndex Lee o escribe el orden de tabulación del control en su contenedor.

TabStop Lee o escribe un valor que indica si el usuario puede dar el foco a este control mediante la tecla TAB.

Tag Lee o escribe el objeto que contiene datos sobre el control.

Text Lee o escribe el texto actual del cuadro de texto.

TextAlignLee o escribe cómo se alinea el texto en un control TextBox.

TextLength Obtiene la longitud del texto en el control.

Top Lee o escribe la coordenada y del borde superior del control, en píxeles.

APLICACIONES WINDOWS CON VB.NET

27

Page 114: Módulo_7_Aplicaciones Windows con VB

TopLevelControl Obtiene el control principal que no es secundario de ningún otro control de formularios Windows Forms.Normalmente, se trata del Form más externo en el que está contenido el control.

Visible Lee o escribe un valor que indica si se muestra el control.

Width Lee o escribe el ancho del control.

WordWrap Indica si un control de cuadro de texto multilínea ajusta las palabras de forma automática al principio de lalínea siguiente cuando es necesario, es decir que se produce un salto de palabra cuando esta no cabe en elancho de la caja de texto.

MÉTODOS PÚBLICOS

AppendText Anexa texto al texto actual del cuadro de texto.

BeginInvoke Ejecuta un delegado de forma asincrónica en el subproceso donde se creó el identificador subyacente delcontrol.

BringToFront Coloca el control al principio del orden Z. en la superposición de objetos

Clear Borra todo el texto del control de cuadro de texto.

ClearUndo Borra del búfer Deshacer del cuadro de texto la información sobre la última operación realizada.

Contains Obtiene un valor que indica si el control especificado es un control secundario del control.

Copy Copia la selección actual del cuadro de texto en el Portapapeles.

APLICACIONES WINDOWS CON VB.NET

28

Page 115: Módulo_7_Aplicaciones Windows con VB

CreateControl Obliga a que se cree el control, incluidos el identificador y los controles secundarios.

CreateGraphics Crea el objeto Graphics para el control.

CreateObjRefCrea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado paracomunicarse con un objeto remoto.

Cut Mueve la selección actual del cuadro de texto al Portapapeles.

DisposeLibera los recursos utilizados por Component.

DoDragDrop Inicia una operación de arrastrar y colocar.

EndInvoke Recupera el valor devuelto por la operación asíncrona representada por el objeto IAsyncResult que se pasa.

EqualsDetermina si dos instancias de Object son iguales.

FindForm Recupera el formulario en el que se encuentra el control.

Focus Establece el foco de entrada en el control.

GetChildAtPoint Recupera el control secundario ubicado en las coordenadas especificadas.

GetContainerControl Devuelve el siguiente ContainerControl (en sentido ascendente) de la cadena de controles principales delcontrol.

APLICACIONES WINDOWS CON VB.NET

29

Page 116: Módulo_7_Aplicaciones Windows con VB

GetHashCode Sirve como función hash para un tipo concreto, apropiado para su utilización en algoritmos de hash yestructuras de datos como las tablas hash.

GetLifetimeServiceRecupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

GetNextControl Recupera el siguiente control, hacia delante o hacia atrás, en el orden de tabulación de controlessecundarios.

GetTypeObtiene el objeto Type de la instancia actual.

Hide Oculta el control al usuario.

InitializeLifetimeService Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

Invalidate Invalida una región específica del control y hace que se envíe un mensaje de dibujo al control.

Invoke Ejecuta un delegado en el subproceso que posee el identificador de ventana subyacente del control.

Paste Reemplaza la selección actual del cuadro de texto con el contenido del Portapapeles.

PerformLayout Obliga al control a aplicar la lógica de diseño a los controles secundarios.

PointToClient Calcula la ubicación del punto especificado de la pantalla, en coordenadas de cliente.

PointToScreen Calcula la ubicación del punto especificado de cliente en coordenadas de pantalla.

APLICACIONES WINDOWS CON VB.NET

30

Page 117: Módulo_7_Aplicaciones Windows con VB

PreProcessMessage Preprocesa los mensajes de entrada en el bucle de mensajes antes de enviarlos.

RectangleToClient Calcula el tamaño y la ubicación del rectángulo de pantalla especificado, en coordenadas de cliente.

RectangleToScreen Calcula el tamaño y la ubicación del rectángulo de cliente especificado, en coordenadas de pantalla.

Refresh Obliga al control a invalidar su área cliente y, acto seguido, obliga a que vuelva a dibujarse el control y suscontroles secundarios.

ResetBackColor Restablece el valor predeterminado de la propiedad BackColor.

ResetBindings Restablece el valor predeterminado de la propiedad DataBindings.

ResetCursor Restablece el valor predeterminado de la propiedad Cursor.

ResetFont Restablece el valor predeterminado de la propiedad Font.

ResetForeColor Restablece el valor predeterminado de la propiedad ForeColor.

ResetImeMode Restablece el valor predeterminado de la propiedad ImeMode.

ResetRightToLeft Restablece el valor predeterminado de la propiedad RightToLeft.

ResetText Restablece el valor predeterminado de la propiedad Text.

ResumeLayout Reanuda la lógica de diseño habitual.

APLICACIONES WINDOWS CON VB.NET

31

Page 118: Módulo_7_Aplicaciones Windows con VB

Scale Ajusta la escala del control y de todos los controles secundarios.

ScrollToCaret Desplaza el contenido del control a la posición del símbolo de intercalación actual.

Select Selecciona texto en el control.

SelectAll Selecciona todo el texto del cuadro de texto.

SelectNextControl Activa el siguiente control.

SendToBack Envía el control al final del orden Z.

SetBounds Establece los límites del control.

Show Muestra el control al usuario.

SuspendLayout Suspende temporalmente la lógica de diseño del control.

ToStringDevuelve un objeto String que representa al objeto Object actual.

Undo Deshace la última operación de edición del cuadro de texto.

Update Hace que el control vuelva a dibujar las regiones invalidadas con su área cliente.

APLICACIONES WINDOWS CON VB.NET

32

Page 119: Módulo_7_Aplicaciones Windows con VB

EVENTOS PÚBLICOS

AcceptsTabChanged Se dispara cuando cambia el valor de la propiedad AcceptsTab.

AutoSizeChanged Se dispara cuando cambia el valor de la propiedad AutoSize.

BackColorChanged Se dispara cuando el valor de la propiedad BackColor cambia.

BackgroundImageChanged Se dispara cuando el valor de la propiedad BackgroundImage cambia.

BindingContextChanged Se dispara cuando el valor de la propiedad BindingContext cambia.

BorderStyleChanged Se dispara cuando cambia el valor de la propiedad BorderStyle.

CausesValidationChanged Se dispara cuando el valor de la propiedad CausesValidation cambia.

ChangeUICues Se dispara cuando cambian las guías de la interfaz de usuario para el foco o el teclado.

Click Se dispara cuando se hace clic en el cuadro de texto.

ContextMenuChanged Se dispara cuando el valor de la propiedad ContextMenu cambia.

ControlAdded Se dispara cuando se agrega un nuevo control a Control.ControlCollection.

ControlRemoved Se dispara cuando se quita un control de Control.ControlCollection.

APLICACIONES WINDOWS CON VB.NET

33

Page 120: Módulo_7_Aplicaciones Windows con VB

CursorChanged Se dispara cuando el valor de la propiedad Cursor cambia.

DisposedAgrega un controlador de eventos para escuchar al evento Disposed en el componente.

DockChanged Se dispara cuando el valor de la propiedad Dock cambia.

DoubleClick Se dispara cuando se hace doble clic en el control.

DragDrop Se dispara cuando termina una operación de arrastrar y colocar.

DragEnter Se dispara cuando se arrastra un objeto dentro de los límites del control.

DragLeave Se dispara cuando se arrastra un objeto fuera de los límites del control.

DragOver Se dispara cuando se arrastra un objeto sobre los límites del control.

EnabledChanged Se dispara cuando cambia el valor de la propiedad Enabled.

Enter Se dispara cuando se entra en el control.

FontChanged Se dispara cuando cambia el valor de la propiedad Font.

ForeColorChanged Se dispara cuando cambia el valor de la propiedad ForeColor.

GiveFeedback Se dispara durante una operación de arrastre.

APLICACIONES WINDOWS CON VB.NET

34

Page 121: Módulo_7_Aplicaciones Windows con VB

GotFocus Se dispara cuando el control recibe el foco.

HandleCreated Se dispara cuando se crea un identificador para el control.

HandleDestroyed Se dispara cuando el identificador del control está en proceso de eliminación.

HelpRequested Se dispara cuando el usuario solicita ayuda para un control.

HideSelectionChanged Se dispara cuando cambia el valor de la propiedad HideSelection.

ImeModeChanged Se dispara cuando cambia la propiedad ImeMode.

Invalidated Se dispara cuando es necesario volver a dibujar un control.

KeyDown Se dispara cuando se presiona una tecla mientras el control tiene el foco.

KeyPress Se dispara cuando se presiona una tecla mientras el control tiene el foco.

KeyUp Se dispara cuando se suelta una tecla mientras el control tiene el foco.

Layout Se dispara cuando un control debe volver a colocar sus controles secundarios.

Leave Se dispara cuando el foco de entrada deja el control.

LocationChanged Se dispara cuando cambia el valor de la propiedad Location.

APLICACIONES WINDOWS CON VB.NET

35

Page 122: Módulo_7_Aplicaciones Windows con VB

LostFocus Se dispara cuando el control pierde el foco.

ModifiedChanged Se dispara cuando cambia el valor de la propiedad Modified.

MouseDown Se dispara cuando el puntero del ratón está sobre el control y se presiona un botón del ratón.

MouseEnter Se dispara cuando el puntero del ratón entra en el control.

MouseHover Se dispara cuando el puntero del ratón se sitúa encima del control.

MouseLeave Se dispara cuando el puntero del ratón deja el control.

MouseMove Se dispara cuando el puntero del ratón se mueve sobre el control.

MouseUp Se dispara cuando el puntero del ratón está encima del control y se suelta un botón del ratón.

MouseWheel Se dispara cuando la rueda del ratón se mueve mientras el control tiene el foco.

Move Se dispara cuando se mueve el control.

MultilineChanged Se dispara cuando cambia el valor de la propiedad Multiline.

Paint Se dispara cuando vuelve a dibujarse el control.

ParentChanged Se dispara cuando cambia el valor de la propiedad Parent.

APLICACIONES WINDOWS CON VB.NET

36

Page 123: Módulo_7_Aplicaciones Windows con VB

QueryAccessibilityHelp Se dispara cuando AccessibleObject proporciona ayuda para aplicaciones de accesibilidad.

QueryContinueDrag Se dispara durante una operación de arrastrar y colocar y permite al origen de arrastre determinar si laoperación de arrastrar y colocar tiene que cancelarse.

ReadOnlyChanged Se dispara cuando cambia el valor de la propiedad ReadOnly.

Resize Se dispara cuando se cambia el tamaño del control.

RightToLeftChanged Se dispara cuando cambia el valor de la propiedad RightToLeft.

SizeChanged Se dispara cuando cambia el valor de la propiedad Size.

StyleChanged Se dispara cuando cambia el estilo del control.

SystemColorsChanged Se dispara cuando se modifican los colores del sistema.

TabIndexChanged Se dispara cuando cambia el valor de la propiedad TabIndex.

TabStopChanged Se dispara cuando cambia el valor de la propiedad TabStop.

TextAlignChangedSe dispara cuando cambia el valor de la propiedad TextAlign.

TextChanged Se dispara cuando cambia el valor de la propiedad Text.

Validated Se dispara cuando finaliza la validación del control.

APLICACIONES WINDOWS CON VB.NET

37

Page 124: Módulo_7_Aplicaciones Windows con VB

Validating Se dispara cuando el control se está validando.

VisibleChanged Se dispara cuando cambia el valor de la propiedad Visible.

Vamos a ver algunos ejemplos de código que trabajan con las posibilidades anteriores.

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

TextBox1.PasswordChar = “*“TextBox1.MaxLength = 10TextBox1.CharacterCasing = CharacterCasing.Upper

End Sub

En este ejemplo se observa como se establece dinámicamente un carácter de visualización de contraseñas,un número máximo de caracteres y el hecho de que todo lo que se escriba en la caja de texto se pongaautomáticamente en mayúsculas, cuando se pulsa el segundo botón del formulario. En esta caja de texto cuando el usuario teclee algo, sea lo que sea se van a ir viendo asteriscos hasta un totalde 10 como máximo y lo escrito estará todo en mayúsculas aunque lo haya escrito en minúsculas.

Cambiar el color de los datos escritos según una condición

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

If TextBox1.Text > 10000 ThenTextBox1.ForeColor = System.Drawing.Color.Red

End IfEnd Sub

Si lo que se ha escrito en la caja de texto tiene un valor superior a 10000, el color del primer plano, es decirel de la fuente del texto, va a ser rojo.

APLICACIONES WINDOWS CON VB.NET

38

Page 125: Módulo_7_Aplicaciones Windows con VB

Escribir datos en múltiples líneas

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button4.Click

Dim valores(3) As String

valores(0) = “paloma”valores(1) = “aguila”valores(2) = “tucan”valores(3) = “gorrión”

TextBox1.Multiline = TrueTextBox1.ScrollBars = ScrollBars.VerticalTextBox1.Lines() = valores

End Sub

Se declara un array de cuatro elementos de tipo string, se asigna a cada uno de los cuatro elementos del arrayvalores, se establece que la caja de texto admita múltiples líneas de texto, se establece que se visualice labarra de desplazamiento vertical dentro del control y finalmente se asigna a la propiedad lines del controlel array, esto hace que en la caja de texto se visualicen cuatro líneas de texto y en cada una de ellas semuestre el valor de cada uno de los elementos del array.

Leer el contenido de todas las líneas de una caja de texto multilínea

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

Dim valor As String

For Each valor In TextBox1.LinesMessageBox.Show(valor)

Next

End Sub

APLICACIONES WINDOWS CON VB.NET

39

Page 126: Módulo_7_Aplicaciones Windows con VB

Vamos a recorrer todas las líneas que haya en la caja de texto multilínea, sean las que sean y vamos a mostrartodo lo que haya escrito en cada una.

Buscar donde esta el cursor de inserción

Cuando escribimos texto en una caja de texto hay un cursor parpadeante que nos indica en cualquiermomento donde se va a producir la siguiente inserción de texto, en una caja de texto multilínea este puedeestar en cualquier sitio, incluso si la caja dispone de barra de desplazamientos, podemos situarnos en un sitiodonde no se vea. La propiedad ScrollToCaret permite visualizar este cursor de inserción en la parte inferiordel control, se visualice lo que se visualice en la caja de texto. Vamos a ver un ejemplo.

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button6.Click

TextBox1.ScrollToCaret()End Sub

Aquí disponemos de un botón que cuando se pulsa automáticamente nos va a mostrar el cursor de inserciónde texto de la caja de texto 1 del formulario.

Añadir texto al final de una caja de texto

TextBox1.AppendText(“HORTERA GRANDE”)

Seleccionar un trozo determinado de texto

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button6.Click

textbox1.SelectionStart = 5textbox1.SelectionLength = 22textbox1.HideSelection = FalseMessageBox.Show(textbox1.SelectedText)

End Sub

En este ejemplo se a seleccionar automáticamente un trozo de texto que se encuentra escrito en una cajade texto multilínea, en concreto desde el carácter 5 hasta el 22, todo el texto seleccionado se muestra sobreiluminado en la propia caja de texto y después se muestra en una ventana Standard.

APLICACIONES WINDOWS CON VB.NET

40

Page 127: Módulo_7_Aplicaciones Windows con VB

Validar la entrada de datos en una caja de texto

Private Sub TextBox2_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox2.Validating

If IsNumeric(TextBox2.Text) Thene.Cancel = False

ElseMessageBox.Show(“ha de teclear un numero”)e.Cancel = True

End IfEnd Sub

En este código se obliga al usuario a tener que teclear un número obligatoriamente en la segunda caja detexto, si no se hace el usuario queda bloqueado en la caja de texto sin poderse salir de ella ni mediante lapulsación de la tecla tabulador ni mediante el ratón.

Control Etiqueta

Sirve para mostrar texto en cualquier formulario, es un control que no permite que el usuario escriba nadeen él, es una forma de escribir sobre un formulario.

Vamos a mostrar un listado con todas sus posibilidades.

PROPIEDADES PÚBLICAS

AccessibilityObject Obtiene AccessibleObject asignado al control.

AccessibleDefaultActionDescription Lee o escribe la descripción de la acción predeterminada del control que las aplicaciones cliente deaccesibilidad utilizan.

AccessibleDescription Lee o escribe la descripción del control que las aplicaciones cliente de accesibilidad utilizan.

APLICACIONES WINDOWS CON VB.NET

41

Page 128: Módulo_7_Aplicaciones Windows con VB

AccessibleName Lee o escribe el nombre del control que las aplicaciones cliente de accesibilidad utilizan.

AccessibleRole Lee o escribe la función accesible del control.

AllowDrop Lee o escribe un valor que indica si el control puede aceptar los datos que el usuario arrastra al mismo.

Anchor Lee o escribe los bordes del control que se acoplan a los bordes de su contenedor.

AutoSizeLee o escribe un valor que indica si el control cambia automáticamente de tamaño para mostrar todo sucontenido.

BackColor Lee o escribe el color de fondo del control.

BackgroundImageVea Control.BackgroundImage.

BindingContext Lee o escribe BindingContext del control.

BorderStyleLee o escribe el estilo de borde del control.

Bottom Obtiene la distancia que existe entre el borde inferior del control y el borde superior del área cliente de sucontenedor.

Bounds Lee o escribe el tamaño y la ubicación del control.

CanFocus Obtiene un valor que indica si el control puede recibir el foco.

APLICACIONES WINDOWS CON VB.NET

42

Page 129: Módulo_7_Aplicaciones Windows con VB

CanSelect Obtiene un valor que indica si el control se puede seleccionar.

Capture Lee o escribe un valor que indica si el control ha capturado el ratón.

CausesValidation Lee o escribe un valor que indica si el control hace que se realice una validación de todos los controles querequieren validación cuando reciben el foco.

ClientRectangle Obtiene el rectángulo que representa el área cliente del control.

ClientSize Lee o escribe el alto y el ancho del área cliente del control.

CompanyName Obtiene el nombre de la compañía o del creador de la aplicación que contiene el control.

Container (se hereda de Component)Obtiene IContainer que contiene Component.

ContainsFocus Obtiene un valor que indica si el control, o uno de sus controles secundarios, tiene el foco de entrada en laactualidad.

ContextMenu Lee o escribe el menú contextual asociado al control.

Controls Obtiene la colección de controles que contiene el control.

Created Obtiene un valor que indica si se ha creado el control.

Cursor Lee o escribe el cursor que se muestra cuando el puntero del ratón se sitúa sobre el control.

APLICACIONES WINDOWS CON VB.NET

43

Page 130: Módulo_7_Aplicaciones Windows con VB

DataBindings Obtiene los enlaces de datos del control.

DisplayRectangle Obtiene el rectángulo que representa el área de presentación del control.

Disposing Obtiene un valor que indica si el control está en proceso de eliminación.

Dock Lee o escribe el borde del contenedor principal al que está acoplado un control.

Enabled Lee o escribe un valor que indica si el control puede responder a la interacción del usuario.

FlatStyleLee o escribe la apariencia de estilo plano del control de etiqueta.

Focused Obtiene un valor que indica si el control tiene el foco de entrada.

Font Lee o escribe la fuente del texto que muestra el control.

ForeColor Lee o escribe el color de primer plano del control.

Handle Obtiene el identificador de ventana al que está enlazado el control.

HasChildren Obtiene un valor que indica si el control contiene uno o más controles secundarios.

Height Lee o escribe el alto del control.

ImageLee o escribe la imagen que se muestra en un control Label.

APLICACIONES WINDOWS CON VB.NET

44

Page 131: Módulo_7_Aplicaciones Windows con VB

ImageAlignLee o escribe la alineación de una imagen mostrada en el control.

ImageIndexLee o escribe el valor de índice de la imagen que se muestra en Label.

ImageListLee o escribe ImageList que contiene las imágenes que se van a mostrar en el control Label.

ImeModeLee o escribe el modo del Editor de métodos de entrada (IME) que este control admite.

InvokeRequired Obtiene un valor que indica si el llamador debe llamar a un método de invocación cuando realiza llamadasa métodos del control porque el llamador se encuentra en un subproceso distinto al del control donde se creó.

IsAccessible Lee o escribe un valor que indica si el control es visible para las aplicaciones de accesibilidad.

IsDisposed Obtiene un valor que indica si el control se ha eliminado.

IsHandleCreated Obtiene un valor que indica si el control tiene un identificador asociado.

Left Lee o escribe la coordenada x del borde izquierdo de un control, en píxeles.

Location Lee o escribe las coordenadas de la esquina superior izquierda del control en relación con la esquina superiorizquierda de su contenedor.

Name Lee o escribe el nombre del control.

Parent Lee o escribe el contenedor principal del control.

APLICACIONES WINDOWS CON VB.NET

45

Page 132: Módulo_7_Aplicaciones Windows con VB

PreferredHeightObtiene el alto preferido del control.

PreferredWidthObtiene el ancho preferido del control.

ProductName Obtiene el nombre de producto del ensamblado que contiene el control.

ProductVersion Obtiene la versión del ensamblado que contiene el control.

RecreatingHandle Obtiene un valor que indica si el control está volviendo a crear su identificador en la actualidad.

Region Lee o escribe la región de ventana asociada al control.

Right Obtiene la distancia entre el borde derecho del control y el borde izquierdo de su contenedor.

RightToLeft Lee o escribe un valor que indica si los elementos del control se alinean para admitir configuracionesregionales utilizando fuentes de derecha a izquierda.

Site Lee o escribe el sitio del control.

Size Lee o escribe el alto y el ancho del control.

TabIndex Lee o escribe el orden de tabulación del control en su contenedor.

TabStopLee o escribe un valor que indica si el usuario puede desplazarse mediante el tabulador hasta el controlLabel.

APLICACIONES WINDOWS CON VB.NET

46

Page 133: Módulo_7_Aplicaciones Windows con VB

Tag Lee o escribe el objeto que contiene datos sobre el control.

Text Lee o escribe el texto asociado al control.

TextAlignLee o escribe la alineación del texto de la etiqueta.

Top Lee o escribe la coordenada y del borde superior del control, en píxeles.

TopLevelControl Obtiene el control principal que no es secundario de ningún otro control de formularios Windows Forms.Normalmente, se trata del Form más externo en el que está contenido el control.

UseMnemonicLee o escribe un valor que indica si el control interpreta como carácter prefijo de una tecla de acceso elcarácter & de la propiedad Text del control.

Visible Lee o escribe un valor que indica si se muestra el control.

Width Lee o escribe el ancho del control.

MÉTODOS PÚBLICOS

BeginInvoke Ejecuta un delegado de forma asincrónica en el subproceso donde se creó el identificador subyacente delcontrol.

BringToFront Coloca el control al principio del orden Z. en la superposición de objetos

Contains Obtiene un valor que indica si el control especificado es un control secundario del control.

APLICACIONES WINDOWS CON VB.NET

47

Page 134: Módulo_7_Aplicaciones Windows con VB

CreateControl Obliga a que se cree el control, incluidos el identificador y los controles secundarios.

CreateGraphics Crea el objeto Graphics para el control.

CreateObjRefCrea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado paracomunicarse con un objeto remoto.

DisposeLibera los recursos utilizados por Component.

DoDragDrop Inicia una operación de arrastrar y colocar.

EndInvoke Recupera el valor devuelto por la operación asíncrona representada por el objeto IAsyncResult que se pasa.

EqualsDetermina si dos instancias de Object son iguales.

FindForm Recupera el formulario en el que se encuentra el control.

Focus Establece el foco de entrada en el control.

GetChildAtPoint Recupera el control secundario ubicado en las coordenadas especificadas.

GetContainerControl Devuelve el siguiente ContainerControl (en sentido ascendente) de la cadena de controles principales delcontrol.

GetHashCodeSirve como función hash para un tipo concreto, apropiado para su utilización en algoritmos de hash yestructuras de datos como las tablas hash.

APLICACIONES WINDOWS CON VB.NET

48

Page 135: Módulo_7_Aplicaciones Windows con VB

GetLifetimeServiceRecupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

GetNextControl Recupera el siguiente control, hacia delante o hacia atrás, en el orden de tabulación de controlessecundarios.

GetTypeObtiene el objeto Type de la instancia actual.

Hide Oculta el control al usuario.

InitializeLifetimeService Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

Invalidate Invalida una región específica del control y hace que se envíe un mensaje de dibujo al control.

Invoke Ejecuta un delegado en el subproceso que posee el identificador de ventana subyacente del control.

PerformLayout Obliga al control a aplicar la lógica de diseño a los controles secundarios.

PointToClient Calcula la ubicación del punto especificado de la pantalla, en coordenadas de cliente.

PointToScreen Calcula la ubicación del punto especificado de cliente en coordenadas de pantalla.

PreProcessMessage Preprocesa los mensajes de entrada en el bucle de mensajes antes de enviarlos.

RectangleToClient Calcula el tamaño y la ubicación del rectángulo de pantalla especificado, en coordenadas de cliente.

RectangleToScreen Calcula el tamaño y la ubicación del rectángulo de cliente especificado, en coordenadas de pantalla.

APLICACIONES WINDOWS CON VB.NET

49

Page 136: Módulo_7_Aplicaciones Windows con VB

Refresh Obliga al control a invalidar su área cliente y, acto seguido, obliga a que vuelva a dibujarse el control y suscontroles secundarios.

ResetBackColor Restablece el valor predeterminado de la propiedad BackColor.

ResetBindings Restablece el valor predeterminado de la propiedad DataBindings.

ResetCursor Restablece el valor predeterminado de la propiedad Cursor.

ResetFont Restablece el valor predeterminado de la propiedad Font.

ResetForeColor Restablece el valor predeterminado de la propiedad ForeColor.

ResetImeMode Restablece el valor predeterminado de la propiedad ImeMode.

ResetRightToLeft Restablece el valor predeterminado de la propiedad RightToLeft.

ResetText Restablece el valor predeterminado de la propiedad Text.

ResumeLayout Reanuda la lógica de diseño habitual.

Scale Ajusta la escala del control y de todos los controles secundarios.

Select Activa un control.

SelectNextControl Activa el siguiente control.

APLICACIONES WINDOWS CON VB.NET

50

Page 137: Módulo_7_Aplicaciones Windows con VB

SendToBack Envía el control al final del orden Z. en trabajos con superposición de controles.

SetBounds Establece los límites del control.

Show Muestra el control al usuario.

SuspendLayout Suspende temporalmente la lógica de diseño del control.

ToStringVea Object.ToString.

Update Hace que el control vuelva a dibujar las regiones invalidadas con su área cliente.

EVENTOS PÚBLICOS

AutoSizeChangedSe produce cuando cambia el valor de la propiedad AutoSize.

BackColorChanged Se produce cuando el valor de la propiedad BackColor cambia.

BackgroundImageChanged Se produce cuando el valor de la propiedad BackgroundImage cambia.

BindingContextChanged Se produce cuando el valor de la propiedad BindingContext cambia.

CausesValidationChanged Se produce cuando el valor de la propiedad CausesValidation cambia.

ChangeUICues Se produce cuando cambian las guías de la interfaz de usuario para el foco o el teclado.

APLICACIONES WINDOWS CON VB.NET

51

Page 138: Módulo_7_Aplicaciones Windows con VB

Click Se produce cuando se hace clic en el control.

ContextMenuChanged Se produce cuando el valor de la propiedad ContextMenu cambia.

ControlAdded Se produce cuando se agrega un nuevo control a Control.ControlCollection.

ControlRemoved Se produce cuando se quita un control de Control.ControlCollection.

CursorChanged Se produce cuando el valor de la propiedad Cursor cambia.

Disposed Agrega un controlador de eventos para escuchar al evento Disposed en el componente.

DockChanged Se produce cuando el valor de la propiedad Dock cambia.

DoubleClick Se produce cuando se hace doble clic en el control.

DragDrop Se produce cuando termina una operación de arrastrar y colocar.

DragEnter Se produce cuando se arrastra un objeto dentro de los límites del control.

DragLeave Se produce cuando se arrastra un objeto fuera de los límites del control.

DragOver Se produce cuando se arrastra un objeto sobre los límites del control.

EnabledChanged Se produce cuando cambia el valor de la propiedad Enabled.

APLICACIONES WINDOWS CON VB.NET

52

Page 139: Módulo_7_Aplicaciones Windows con VB

Enter Se produce cuando se entra en el control.

FontChanged Se produce cuando cambia el valor de la propiedad Font.

ForeColorChanged Se produce cuando cambia el valor de la propiedad ForeColor.

GiveFeedback Se produce durante una operación de arrastre.

GotFocus Se produce cuando el control recibe el foco.

HandleCreated Se produce cuando se crea un identificador para el control.

HandleDestroyed Se produce cuando el identificador del control está en proceso de eliminación.

HelpRequested Se produce cuando el usuario solicita ayuda para un control.

ImeModeChanged Se produce cuando cambia la propiedad ImeMode.

Invalidated Se produce cuando es necesario volver a dibujar un control.

Layout Se produce cuando un control debe volver a colocar sus controles secundarios.

Leave Se produce cuando el foco de entrada deja el control.

LocationChanged Se produce cuando cambia el valor de la propiedad Location.

APLICACIONES WINDOWS CON VB.NET

53

Page 140: Módulo_7_Aplicaciones Windows con VB

LostFocus Se produce cuando el control pierde el foco.

MouseDown Se produce cuando el puntero del ratón está sobre el control y se presiona un botón del mouse.

MouseEnter Se produce cuando el puntero del ratón entra en el control.

MouseHover Se produce cuando el puntero del ratón se sitúa encima del control.

MouseLeave Se produce cuando el puntero del ratón deja el control.

MouseMove Se produce cuando el puntero del ratón se mueve sobre el control.

MouseUp Se produce cuando el puntero del ratón está encima del control y se suelta un botón del mouse.

MouseWheel Se produce cuando la rueda del ratón se mueve mientras el control tiene el foco.

Move Se produce cuando se mueve el control.

Paint Se produce cuando vuelve a dibujarse el control.

ParentChanged Se produce cuando cambia el valor de la propiedad Parent.

QueryAccessibilityHelp Se produce cuando AccessibleObject proporciona ayuda para aplicaciones de accesibilidad.

QueryContinueDrag Se produce durante una operación de arrastrar y colocar y permite al origen de arrastre determinar si laoperación de arrastrar y colocar tiene que cancelarse.

APLICACIONES WINDOWS CON VB.NET

54

Page 141: Módulo_7_Aplicaciones Windows con VB

Resize Se produce cuando se cambia el tamaño del control.

RightToLeftChanged Se produce cuando cambia el valor de la propiedad RightToLeft.

SizeChanged Se produce cuando cambia el valor de la propiedad Size.

StyleChanged Se produce cuando cambia el estilo del control.

SystemColorsChanged Se produce cuando se modifican los colores del sistema.

TabIndexChanged Se produce cuando cambia el valor de la propiedad TabIndex.

TabStopChanged Se produce cuando cambia el valor de la propiedad TabStop.

TextAlignChangedSe produce cuando cambia el valor de la propiedad TextAlign.

TextChanged Se produce cuando cambia el valor de la propiedad Text.

Validated Se produce cuando finaliza la validación del control.

Validating Se produce cuando el control se está validando.

VisibleChanged Se produce cuando cambia el valor de la propiedad Visible.

APLICACIONES WINDOWS CON VB.NET

55

Page 142: Módulo_7_Aplicaciones Windows con VB

En todas las etiquetas el fondo es transparente a no ser que expresamente se cambie de color.

Cuando se escribe el texto de una etiqueta automáticamente este se ajusta al tamaño del control de laetiqueta, es decir se produce automáticamente el salto de línea en caso de que el texto no quepa a lo ancho.Si se pone la propiedad AutoSize a true, es el tamaño de la etiqueta el que se ajusta al texto, es decir se vaa cambiar el ancho de la etiqueta para que quepa todo el texto en una sola línea.

Acceder a una caja de texto mediante letra mnemónica

Normalmente a las cajas de texto no es posible asociarles una combinación de teclas de acceso rápido, esdecir que se pueda seleccionar automáticamente la caja mediante la pulsación de la tecla ALT + una letra,puesto que la propiedad text de las cajas de texto no sirve para esta tarea.

La solución es poner una etiqueta y en la propiedad text de la etiqueta poner la letra mnemónica que sedesee, recordar que se hace antecediendo a la letra el &.

Hay que asegurarse que la caja de texto a donde se desea acceder mediante la pulsación de teclas sea elsiguiente control en la posición de tabulación, esto se puede conseguir mediante la propiedad Tabindex,poniendo un valor inmediatamente superior al que tenga la etiqueta.

Cuadro Combinado

APLICACIONES WINDOWS CON VB.NET

56

Page 143: Módulo_7_Aplicaciones Windows con VB

Es un control que permite al usuario al pinchar en el botón de flecha desplegar una lista con una serie devalores a seleccionar, el valor que se selecciona de la lista pasa automáticamente a la caja de texto queacompaña al control, es posible que el usuario escriba cualquier dato directamente en la caja de texto delcontrol.

Esta orientado fundamentalmente a facilitar al usuario la entrada de datos, así como el error de tecleado,puesto que simplemente eligiendo la opción de la lista automáticamente ya se escribe no es necesariateclearla.

Vamos a ver un listado con todas sus posibilidades.

PROPIEDADES PÚBLICAS

AccessibilityObject Obtiene AccessibleObject asignado al control.

AccessibleDefaultActionDescription Lee o escribe la descripción de la acción predeterminada del control que las aplicaciones cliente deaccesibilidad utilizan.

AccessibleDescription Lee o escribe la descripción del control que las aplicaciones cliente de accesibilidad utilizan.

AccessibleName Lee o escribe el nombre del control que las aplicaciones cliente de accesibilidad utilizan.

AccessibleRole Lee o escribe la función accesible del control.

AllowDrop Lee o escribe un valor que indica si el control puede aceptar los datos que el usuario arrastra al mismo.

Anchor Lee o escribe los bordes del control que se acoplan a los bordes de su contenedor.

BackColorVea Control.BackColor.

APLICACIONES WINDOWS CON VB.NET

57

Page 144: Módulo_7_Aplicaciones Windows con VB

BackgroundImageVea Control.BackgroundImage.

BindingContext Lee o escribe BindingContext del control.

Bottom Obtiene la distancia que existe entre el borde inferior del control y el borde superior del área cliente de sucontenedor.

Bounds Lee o escribe el tamaño y la ubicación del control.

CanFocus Obtiene un valor que indica si el control puede recibir el foco.

CanSelect Obtiene un valor que indica si el control se puede seleccionar.

Capture Lee o escribe un valor que indica si el control ha capturado el mouse (ratón).

CausesValidation Lee o escribe un valor que indica si el control hace que se realice una validación de todos los controles querequieren validación cuando reciben el foco.

ClientRectangle Obtiene el rectángulo que representa el área cliente del control.

ClientSize Lee o escribe el alto y el ancho del área cliente del control.

CompanyName Obtiene el nombre de la compañía o del creador de la aplicación que contiene el control.

ContainerObtiene IContainer que contiene Component.

APLICACIONES WINDOWS CON VB.NET

58

Page 145: Módulo_7_Aplicaciones Windows con VB

ContainsFocus Obtiene un valor que indica si el control, o uno de sus controles secundarios, tiene el foco de entrada en laactualidad.

ContextMenu Lee o escribe el menú contextual asociado al control.

Controls Obtiene la colección de controles que contiene el control.

Created Obtiene un valor que indica si se ha creado el control.

Cursor Lee o escribe el cursor que se muestra cuando el puntero del mouse se sitúa sobre el control.

DataBindings Obtiene los enlaces de datos del control.

DataSource Lee o escribe el origen de datos de este objeto ListControl.

DisplayMember Lee o escribe una cadena que especifica la propiedad del origen de datos cuyo contenido se desea mostrar.

DisplayRectangle Obtiene el rectángulo que representa el área de presentación del control.

Disposing Obtiene un valor que indica si el control está en proceso de eliminación.

Dock Lee o escribe el borde del contenedor principal al que está acoplado un control.

DrawModeLee o escribe un valor que indica si el código o el sistema operativo controlarán las operaciones de dibujode elementos de la lista.

APLICACIONES WINDOWS CON VB.NET

59

Page 146: Módulo_7_Aplicaciones Windows con VB

DropDownStyleLee o escribe un valor que específica el estilo del cuadro combinado.

DropDownWidthLee o escribe el ancho de la parte desplegable de un cuadro combinado.

DroppedDownLee o escribe un valor que indica si el cuadro combinado está mostrando la parte desplegable.

Enabled Lee o escribe un valor que indica si el control puede responder a la interacción del usuario.

FocusedVea Control.Focused.

Font Lee o escribe la fuente del texto que muestra el control.

ForeColorVea Control.ForeColor.

Handle Obtiene el identificador de ventana al que está enlazado el control.

HasChildren Obtiene un valor que indica si el control contiene uno o más controles secundarios.

Height Lee o escribe el alto del control.

ImeMode Lee o escribe el modo de Editor de métodos de entrada (IME) del control.

IntegralHeightLee o escribe un valor que indica si el control debe cambiar de tamaño para evitar que se muestre sólo unaparte de los elementos.

APLICACIONES WINDOWS CON VB.NET

60

Page 147: Módulo_7_Aplicaciones Windows con VB

InvokeRequired Obtiene un valor que indica si el llamador debe llamar a un método de invocación cuando realiza llamadasa métodos del control porque el llamador se encuentra en un subproceso distinto al del control donde se creó.

IsAccessible Lee o escribe un valor que indica si el control es visible para las aplicaciones de accesibilidad.

IsDisposed Obtiene un valor que indica si el control se ha eliminado.

IsHandleCreated Obtiene un valor que indica si el control tiene un identificador asociado.

ItemHeightLee o escribe el alto de un elemento en el cuadro combinado.

ItemsObtiene un objeto que representa la colección de los elementos que contiene el ComboBox.

Left Lee o escribe la coordenada x del borde izquierdo de un control, en píxeles.

Location Lee o escribe las coordenadas de la esquina superior izquierda del control en relación con la esquina superiorizquierda de su contenedor.

MaxDropDownItemsLee o escribe el número máximo de elementos que se van a mostrar en la parte desplegable del ComboBox.

MaxLengthLee o escribe el número máximo de caracteres que se permite en la parte editable de un cuadro combinado.

Name Lee o escribe el nombre del control.

Parent Lee o escribe el contenedor principal del control.

APLICACIONES WINDOWS CON VB.NET

61

Page 148: Módulo_7_Aplicaciones Windows con VB

PreferredHeightObtiene el alto preferido del ComboBox.

ProductName Obtiene el nombre de producto del ensamblado que contiene el control.

ProductVersion Obtiene la versión del ensamblado que contiene el control.

RecreatingHandle Obtiene un valor que indica si el control está volviendo a crear su identificador en la actualidad.

Region Lee o escribe la región de ventana asociada al control.

Right Obtiene la distancia entre el borde derecho del control y el borde izquierdo de su contenedor.

RightToLeft Lee o escribe un valor que indica si los elementos del control se alinean para admitir configuracionesregionales utilizando fuentes de derecha a izquierda.

SelectedIndexLee o escribe el índice que especifica el elemento seleccionado actualmente.

SelectedItemLee o escribe el elemento seleccionado actualmente en el ComboBox.

SelectedTextLee o escribe el texto que se selecciona en la parte de un ComboBox que se puede editar.

SelectedValue Lee o escribe el valor de la propiedad miembro especificada por la propiedad ValueMember.

SelectionLengthLee o escribe el número de caracteres seleccionados en la parte de un cuadro combinado que se puedeeditar.

APLICACIONES WINDOWS CON VB.NET

62

Page 149: Módulo_7_Aplicaciones Windows con VB

SelectionStartLee o escribe el índice de inicio del texto seleccionado en el cuadro combinado.

Site Lee o escribe el sitio del control.

Size Lee o escribe el alto y el ancho del control.

SortedLee o escribe un valor que indica si los elementos del cuadro combinado están ordenados.

TabIndex Lee o escribe el orden de tabulación del control en su contenedor.

TabStop Lee o escribe un valor que indica si el usuario puede dar el foco a este control mediante la tecla TAB.

Tag Lee o escribe el objeto que contiene datos sobre el control.

TextLee o escribe el texto asociado al control.

Top Lee o escribe la coordenada y del borde superior del control, en píxeles.

TopLevelControl Obtiene el control principal que no es secundario de ningún otro control de formularios Windows Forms.Normalmente, se trata del Form más externo en el que está contenido el control.

ValueMember Lee o escribe una cadena que especifica la propiedad del origen de datos a partir de la cual se va a dibujarel valor.

Visible Lee o escribe un valor que indica si se muestra el control.

Width Lee o escribe el ancho del control.

APLICACIONES WINDOWS CON VB.NET

63

Page 150: Módulo_7_Aplicaciones Windows con VB

MÉTODOS PÚBLICOS

BeginInvoke Ejecuta un delegado de forma asincrónica en el subproceso donde se creó el identificador subyacente delcontrol.

BeginUpdateMantiene el rendimiento cuando se agregan elementos al ComboBox de uno en uno.

BringToFront Coloca el control al principio del orden Z.

Contains Obtiene un valor que indica si el control especificado es un control secundario del control.

CreateControl Obliga a que se cree el control, incluidos el identificador y los controles secundarios.

CreateGraphics Crea el objeto Graphics para el control.

CreateObjRefCrea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado paracomunicarse con un objeto remoto.

DisposeLibera los recursos utilizados por Component.

DoDragDrop Inicia una operación de arrastrar y colocar.

EndInvoke Recupera el valor devuelto por la operación asíncrona representada por el objeto IAsyncResult que se pasa.

EndUpdateReanuda el dibujo del control ComboBox después de que el método BeginUpdate lo haya suspendido.

EqualsDetermina si dos instancias de Object son iguales.

APLICACIONES WINDOWS CON VB.NET

64

Page 151: Módulo_7_Aplicaciones Windows con VB

FindForm Recupera el formulario en el que se encuentra el control.

FindStringBusca el primer elemento del ComboBox que comienza con la cadena especificada.

FindStringExactBusca el elemento que coincide exactamente con la cadena especificada.

Focus Establece el foco de entrada en el control.

GetChildAtPoint Recupera el control secundario ubicado en las coordenadas especificadas.

GetContainerControl Devuelve el siguiente ContainerControl (en sentido ascendente) de la cadena de controles principales delcontrol.

GetHashCode Sirve como función hash para un tipo concreto, apropiado para su utilización en algoritmos de hash yestructuras de datos como las tablas hash.

GetItemHeightDevuelve el alto de un elemento del ComboBox.

GetItemText (se hereda de ListControl)Devuelve la representación de texto del elemento especificado.

GetLifetimeServiceRecupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

GetNextControl Recupera el siguiente control, hacia delante o hacia atrás, en el orden de tabulación de controlessecundarios.

GetTypeObtiene el objeto Type de la instancia actual.

APLICACIONES WINDOWS CON VB.NET

65

Page 152: Módulo_7_Aplicaciones Windows con VB

Hide Oculta el control al usuario.

InitializeLifetimeService Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

Invalidate Invalida una región específica del control y hace que se envíe un mensaje de dibujo al control.

Invoke Ejecuta un delegado en el subproceso que posee el identificador de ventana subyacente del control.

PerformLayout Obliga al control a aplicar la lógica de diseño a los controles secundarios.

PointToClient Calcula la ubicación del punto especificado de la pantalla, en coordenadas de cliente.

PointToScreen Calcula la ubicación del punto especificado de cliente en coordenadas de pantalla.

PreProcessMessage Preprocesa los mensajes de entrada en el bucle de mensajes antes de enviarlos.

RectangleToClient Calcula el tamaño y la ubicación del rectángulo de pantalla especificado, en coordenadas de cliente.

RectangleToScreen Calcula el tamaño y la ubicación del rectángulo de cliente especificado, en coordenadas de pantalla.

Refresh Obliga al control a invalidar su área cliente y, acto seguido, obliga a que vuelva a dibujarse el control y suscontroles secundarios.

ResetBackColor Restablece el valor predeterminado de la propiedad BackColor.

ResetBindings Restablece el valor predeterminado de la propiedad DataBindings.

APLICACIONES WINDOWS CON VB.NET

66

Page 153: Módulo_7_Aplicaciones Windows con VB

ResetCursor Restablece el valor predeterminado de la propiedad Cursor.

ResetFont Restablece el valor predeterminado de la propiedad Font.

ResetForeColor Restablece el valor predeterminado de la propiedad ForeColor.

ResetImeMode Restablece el valor predeterminado de la propiedad ImeMode.

ResetRightToLeft Restablece el valor predeterminado de la propiedad RightToLeft.

ResetText Restablece el valor predeterminado de la propiedad Text.

ResumeLayout Reanuda la lógica de diseño habitual.

Scale Ajusta la escala del control y de todos los controles secundarios.

SelectSelecciona un intervalo de texto.

SelectAllSelecciona todo el texto de la parte editable del ComboBox.

SelectNextControl Activa el siguiente control.

SendToBack Envía el control al final del orden Z.

SetBounds Establece los límites del control.

APLICACIONES WINDOWS CON VB.NET

67

Page 154: Módulo_7_Aplicaciones Windows con VB

Show Muestra el control al usuario.

SuspendLayout Suspende temporalmente la lógica de diseño del control.

ToStringVea Object.ToString.

Update Hace que el control vuelva a dibujar las regiones invalidadas con su área cliente.

EVENTOS PÚBLICOS

BackColorChanged Se produce cuando el valor de la propiedad BackColor cambia.

BackgroundImageChanged Se produce cuando el valor de la propiedad BackgroundImage cambia.

BindingContextChanged Se produce cuando el valor de la propiedad BindingContext cambia.

CausesValidationChanged Se produce cuando el valor de la propiedad CausesValidation cambia.

ChangeUICues Se produce cuando cambian las guías de la interfaz de usuario para el foco o el teclado.

Click Se produce cuando se hace clic en el control.

ContextMenuChanged Se produce cuando el valor de la propiedad ContextMenu cambia.

ControlAdded Se produce cuando se agrega un nuevo control a Control.ControlCollection.

APLICACIONES WINDOWS CON VB.NET

68

Page 155: Módulo_7_Aplicaciones Windows con VB

ControlRemoved Se produce cuando se quita un control de Control.ControlCollection.

CursorChanged Se produce cuando el valor de la propiedad Cursor cambia.

DataSourceChanged Se produce cuando DataSource cambia.

DisplayMemberChangedSe produce cuando cambia la propiedad DisplayMember.

Disposed Agrega un controlador de eventos para escuchar al evento Disposed en el componente.

DockChanged Se produce cuando el valor de la propiedad Dock cambia.

DoubleClick Se produce cuando se hace doble clic en el control.

DragDrop Se produce cuando termina una operación de arrastrar y colocar.

DragEnter Se produce cuando se arrastra un objeto dentro de los límites del control.

DragLeave Se produce cuando se arrastra un objeto fuera de los límites del control.

DragOver Se produce cuando se arrastra un objeto sobre los límites del control.

DrawItemSe produce cuando cambia un aspecto visual de un ComboBox dibujado por el propietario.

DropDownSe produce cuando se muestra la parte desplegable de un ComboBox.

APLICACIONES WINDOWS CON VB.NET

69

Page 156: Módulo_7_Aplicaciones Windows con VB

DropDownStyleChangedSe produce cuando ha cambiado la propiedad DropDownStyle.

EnabledChanged Se produce cuando cambia el valor de la propiedad Enabled.

Enter Se produce cuando se entra en el control.

FontChanged Se produce cuando cambia el valor de la propiedad Font.

ForeColorChanged Se produce cuando cambia el valor de la propiedad ForeColor.

GiveFeedback Se produce durante una operación de arrastre.

GotFocus Se produce cuando el control recibe el foco.

HandleCreated Se produce cuando se crea un identificador para el control.

HandleDestroyed Se produce cuando el identificador del control está en proceso de eliminación.

HelpRequested Se produce cuando el usuario solicita ayuda para un control.

ImeModeChanged Se produce cuando cambia la propiedad ImeMode.

Invalidated Se produce cuando es necesario volver a dibujar un control.

KeyDown Se produce cuando se presiona una tecla mientras el control tiene el foco.

APLICACIONES WINDOWS CON VB.NET

70

Page 157: Módulo_7_Aplicaciones Windows con VB

KeyPress Se produce cuando se presiona una tecla mientras el control tiene el foco.

KeyUp Se produce cuando se suelta una tecla mientras el control tiene el foco.

Layout Se produce cuando un control debe volver a colocar sus controles secundarios.

Leave Se produce cuando el foco de entrada deja el control.

LocationChanged Se produce cuando cambia el valor de la propiedad Location.

LostFocus Se produce cuando el control pierde el foco.

MeasureItemSe produce cada vez que hay que dibujar un elemento de ComboBox dibujado por el usuario y cuando lostamaños de los elementos de lista vienen determinados.

MouseDown Se produce cuando el puntero del ratón está sobre el control y se presiona un botón del mouse.

MouseEnter Se produce cuando el puntero del ratón entra en el control.

MouseHover Se produce cuando el puntero del ratón se sitúa encima del control.

MouseLeave Se produce cuando el puntero del ratón deja el control.

MouseMove Se produce cuando el puntero del ratón se mueve sobre el control.

MouseUp Se produce cuando el puntero del ratón está encima del control y se suelta un botón del mouse.

APLICACIONES WINDOWS CON VB.NET

71

Page 158: Módulo_7_Aplicaciones Windows con VB

MouseWheel Se produce cuando la rueda del ratón se mueve mientras el control tiene el foco.

Move Se produce cuando se mueve el control.

ParentChanged Se produce cuando cambia el valor de la propiedad Parent.

QueryAccessibilityHelp Se produce cuando AccessibleObject proporciona ayuda para aplicaciones de accesibilidad.

QueryContinueDrag Se produce durante una operación de arrastrar y colocar y permite al origen de arrastre determinar si laoperación de arrastrar y colocar tiene que cancelarse.

Resize Se produce cuando se cambia el tamaño del control.

RightToLeftChanged Se produce cuando cambia el valor de la propiedad RightToLeft.

SelectedIndexChangedSe produce cuando ha cambiado la propiedad SelectedIndex.

SelectedValueChangedSe produce cuando cambia la propiedad SelectedValue.

SelectionChangeCommittedSe produce cuando se ha cambiado el elemento seleccionado y se confirma el cambio.

SizeChanged Se produce cuando cambia el valor de la propiedad Size.

StyleChanged Se produce cuando cambia el estilo del control.

SystemColorsChanged Se produce cuando se modifican los colores del sistema.

APLICACIONES WINDOWS CON VB.NET

72

Page 159: Módulo_7_Aplicaciones Windows con VB

TabIndexChanged Se produce cuando cambia el valor de la propiedad TabIndex.

TabStopChanged Se produce cuando cambia el valor de la propiedad TabStop.

TextChanged Se produce cuando cambia el valor de la propiedad Text.

Validated Se produce cuando finaliza la validación del control.

Validating Se produce cuando el control se está validando.

ValueMemberChangedSe produce cuando cambia la propiedad ValueMember.

VisibleChanged Se produce cuando cambia el valor de la propiedad Visible.

Los distintos elementos que se pueden ver en la ventana desplegable de un cuadro combinado se puedenintroducir en modo diseño mediante la propiedad ítems.

Existen varios tipos de cuadros combinados posibles a manejar que se determinan mediante la propiedadDrowDownStyle, permite optar por el tipo simple, el tipo de lista desplegable (dropdown list) y el tipodesplegable (dropdown)

Vamos a ver el aspecto de los mismos a continuación:

APLICACIONES WINDOWS CON VB.NET

73

Page 160: Módulo_7_Aplicaciones Windows con VB

El primero de la izquierda es el tipo por defecto, el segundo es el tipo simple, como se ve la lista desplegableya esta desplegada con los elementos que hayamos establecido, se puede seleccionar cualquiera de estoselementos y automáticamente se escribe en la caja de texto del cuadro combinado, también es posibleescribir directamente en la caja de texto.

El tercero de los cuadros combinados es el de tipo lista desplegable, la diferencia fundamental es que no sepuede escribir en él, solamente se puede seleccionar uno de los elementos de la lista que automáticamentese escribirá en la caja de texto del cuadro combinado.

Captar cual es el elemento seleccionado de un cuadro combinado

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

MessageBox.Show(ComboBox1.Text())MessageBox.Show(ComboBox1.SelectedItem)MessageBox.Show(ComboBox1.SelectedIndex)

End Sub

La primera línea de código va a mostrar lo que hay en la caja de texto del cuadro combinado que suele serel literal del elemento seleccionado de la ventana desplegable.

En la segunda línea se muestra el literal del elemento seleccionado del cuadro combinado, la diferencia quehay con la opción anterior es que si se teclea algo en la caja de texto, esta segunda línea no mostrará nada,puesto que no ha habido ningún proceso de selección por parte del usuario.

La tercera línea de código muestra el índice del elemento seleccionado por el usuario del cuadro combinado,sabiendo que el primer elemento empieza por 0 el segundo sería el 1 y así sucesivamente.

Añadir dinámicamente elementos a un cuadro combinado

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

ComboBox1.Items.Add(“ESTRELLA”)ComboBox1.Items.Add(“MARTE”)ComboBox1.Items.Add(“VENUS”)

End Sub

APLICACIONES WINDOWS CON VB.NET

74

Page 161: Módulo_7_Aplicaciones Windows con VB

Aquí se va a añadir al pulsar al segundo botón del formulario tres nuevos elementos al final de los yaexistentes, y si no hay ninguno el cuadro combinado al final tendrá los elementos añadidos.

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

Dim VALORES(2) As StringVALORES(0) = “ANAYA”VALORES(1) = “SM”VALORES(2) = “ESPASA”

ComboBox1.Items.AddRange(VALORES)End Sub

En este otro ejemplo se muestra como se añaden al mismo tiempo varios elementos que previamente se hanasignado a un array.

Eliminar elementos de un cuado combinado

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

ComboBox1.Items.RemoveAt(0)ComboBox1.Items.Remove(“BILBAO”)

End Sub

En la primera línea se elimina uno de los elementos del cuadro combinado mediante su índice, mientras queen la segunda se hace especificando directamente el literal del elemento que se desea borrar.

Sustituir valores de elementos del cuadro combinado

ComboBox1.Items(2) = “ATOCHA”Insertar un elemento en un cuadro combinado

ComboBox1.Items.Insert(2, “ASTURIAS”)Ordenar dinámicamente un cuadro combinado

ComboBox1.Sorted = True

APLICACIONES WINDOWS CON VB.NET

75

Page 162: Módulo_7_Aplicaciones Windows con VB

Establecer el máximo de elementos visibles de un cuadro combinado

Más bien es del número de elementos que se ven de una vez en la ventana de un cuadro combinado.

ComboBox1.MaxDropDownItems = 4

Esto establece que en la ventana del cuadro combinado en un momento solamente se puedan ver hasta unmáximo de cuatro elementos.

Borrar todos los elementos de un cuadro combinado

ComboBox1.Items.Clear()

Captar al seleccionar el valor de un cuadro combinado

Se pretende que justo en el momento de elegir un elemento de un cuadro combinado se haga una tarea. Estose realiza mediante el evento SelectionChangedcommited

Private Sub ComboBox1_SelectionChangeCommitted(ByVal sender As Object, ByVal e As System.EventArgs)Handles ComboBox1.SelectionChangeCommitted

Button4.Text = ComboBox1.SelectedItemEnd Sub

Obligar a seleccionar algo en un cuadro combinado

Private Sub ComboBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles ComboBox1.Validating

If ComboBox1.SelectedIndex < 0 ThenMessageBox.Show(“DEBES DE SELECCIONAR ALGO”)e.Cancel = True

Elsee.Cancel = False

End IfEnd Sub

Se ha dosificado el procedimiento de evento validating, que se ejecuta inmediatamente antes de que elusuario se salga del control. Cuando el usuario no ha hecho ninguna selección en el cuadro combinado, elíndice de selección es -1, de esta manera podemos controlar el hecho con una condición.

APLICACIONES WINDOWS CON VB.NET

76

Page 163: Módulo_7_Aplicaciones Windows con VB

Reacuérdese que asignar trae a cancel significa que deseamos cancelar el proceso de validación, es decir quela entra no es valida, el usuario se mantendrá en el control.

Cuadro de Lista

Es un control muy parecido al anterior, permite al usuario seleccionar una opción entre varias que se muestranen una lista, la diferencia fundamental con el anterior control, es que en este no se puede escribirabsolutamente nada, además de la apariencia externa en la que directamente aparece una ventana con ellistado de valores a poder seleccionar por el usuario.

Voy a mostrar un listado con todas las posibilidades de este control.

PROPIEDADES PÚBLICAS

DefaultItemHeightEspecifica el alto predeterminado de los elementos de un control ListBox dibujado por el propietario.

NoMatchesEspecifica que no se encuentran coincidencias durante una búsqueda.

APLICACIONES WINDOWS CON VB.NET

77

Page 164: Módulo_7_Aplicaciones Windows con VB

PROPIEDADES PÚBLICAS

AccessibilityObject Obtiene AccessibleObject asignado al control.

AccessibleDefaultActionDescription Lee o escribe la descripción de la acción predeterminada del control que las aplicaciones cliente deaccesibilidad utilizan.

AccessibleDescription Lee o escribe la descripción del control que las aplicaciones cliente de accesibilidad utilizan.

AccessibleName Lee o escribe el nombre del control que las aplicaciones cliente de accesibilidad utilizan.

AccessibleRole Lee o escribe la función accesible del control.

AllowDrop Lee o escribe un valor que indica si el control puede aceptar los datos que el usuario arrastra al mismo.

Anchor Lee o escribe los bordes del control que se acoplan a los bordes de su contenedor.

BackColorVea Control.BackColor.

BackgroundImageVea Control.BackgroundImage.

BindingContext Lee o escribe BindingContext del control.

Bottom Obtiene la distancia que existe entre el borde inferior del control y el borde superior del área cliente de sucontenedor.

Bounds Lee o escribe el tamaño y la ubicación del control.

APLICACIONES WINDOWS CON VB.NET

78

Page 165: Módulo_7_Aplicaciones Windows con VB

CanFocus Obtiene un valor que indica si el control puede recibir el foco.

CanSelect Obtiene un valor que indica si el control se puede seleccionar.

Capture Lee o escribe un valor que indica si el control ha capturado el ratón.

CausesValidation Lee o escribe un valor que indica si el control hace que se realice una validación de todos los controles querequieren validación cuando reciben el foco.

ClientRectangle Obtiene el rectángulo que representa el área cliente del control.

ClientSize Lee o escribe el alto y el ancho del área cliente del control.

ColumnWidthLee o escribe el ancho de las columnas de un control ListBox de varias columnas.

CompanyName Obtiene el nombre de la compañía o del creador de la aplicación que contiene el control.

ContainerObtiene IContainer que contiene Component.

ContainsFocus Obtiene un valor que indica si el control, o uno de sus controles secundarios, tiene el foco de entrada en laactualidad.

ContextMenu Lee o escribe el menú contextual asociado al control.

Controls Obtiene la colección de controles que contiene el control.

APLICACIONES WINDOWS CON VB.NET

79

Page 166: Módulo_7_Aplicaciones Windows con VB

Created Obtiene un valor que indica si se ha creado el control.

Cursor Lee o escribe el cursor que se muestra cuando el puntero del ratón se sitúa sobre el control.

DataBindings Obtiene los enlaces de datos del control.

DataSource Lee o escribe el origen de datos de este objeto ListControl.

DisplayMember Lee o escribe una cadena que especifica la propiedad del origen de datos cuyo contenido se desea mostrar.

DisplayRectangle Obtiene el rectángulo que representa el área de presentación del control.

Disposing Obtiene un valor que indica si el control está en proceso de eliminación.

Dock Lee o escribe el borde del contenedor principal al que está acoplado un control.

DrawModeLee o escribe el modo de dibujo del control.

Enabled Lee o escribe un valor que indica si el control puede responder a la interacción del usuario.

Focused Obtiene un valor que indica si el control tiene el foco de entrada.

Font Lee o escribe la fuente del texto que muestra el control.

ForeColorVea Control.ForeColor.

APLICACIONES WINDOWS CON VB.NET

80

Page 167: Módulo_7_Aplicaciones Windows con VB

Handle Obtiene el identificador de ventana al que está enlazado el control.

HasChildren Obtiene un valor que indica si el control contiene uno o más controles secundarios.

Height Lee o escribe el alto del control.

HorizontalExtentLee o escribe el ancho por el que puede desplazarse la barra de desplazamiento horizontal de un controlListBox.

HorizontalScrollbarLee o escribe un valor que indica si se muestra una barra de desplazamiento horizontal en el control.

ImeMode Lee o escribe el modo de Editor de métodos de entrada (IME) del control.

IntegralHeightLee o escribe un valor que indica si el control debe cambiar de tamaño para evitar que se muestre sólo unaparte de los elementos.

InvokeRequired Obtiene un valor que indica si el llamador debe llamar a un método de invocación cuando realiza llamadasa métodos del control porque el llamador se encuentra en un subproceso distinto al del control donde se creó.

IsAccessible Lee o escribe un valor que indica si el control es visible para las aplicaciones de accesibilidad.

IsDisposed Obtiene un valor que indica si el control se ha eliminado.

IsHandleCreated Obtiene un valor que indica si el control tiene un identificador asociado.

ItemHeightLee o escribe el alto de un elemento de ListBox.

APLICACIONES WINDOWS CON VB.NET

81

Page 168: Módulo_7_Aplicaciones Windows con VB

ItemsObtiene los elementos del control ListBox.

Left Lee o escribe la coordenada x del borde izquierdo de un control, en píxeles.

Location Lee o escribe las coordenadas de la esquina superior izquierda del control en relación con la esquina superiorizquierda de su contenedor.

MultiColumnLee o escribe un valor que indica si el control ListBox admite varias columnas.

Name Lee o escribe el nombre del control.

Parent Lee o escribe el contenedor principal del control.

PreferredHeightObtiene el alto combinado de todos los elementos del control ListBox.

ProductName Obtiene el nombre de producto del ensamblado que contiene el control.

ProductVersion Obtiene la versión del ensamblado que contiene el control.

RecreatingHandle Obtiene un valor que indica si el control está volviendo a crear su identificador en la actualidad.

Region Lee o escribe la región de ventana asociada al control.

Right Obtiene la distancia entre el borde derecho del control y el borde izquierdo de su contenedor.

RightToLeftLee o escribe un valor que indica si el texto que muestra el control aparece de derecha a izquierda.

APLICACIONES WINDOWS CON VB.NET

82

Page 169: Módulo_7_Aplicaciones Windows con VB

ScrollAlwaysVisibleLee o escribe un valor que indica si la barra de desplazamiento vertical se muestra siempre.

SelectedIndexLee o escribe el índice de base cero del elemento actualmente seleccionado en ListBox.

SelectedIndicesObtiene una colección que contiene los índices de base cero de todos los elementos actualmenteseleccionados en el control ListBox.

SelectedItemLee o escribe el elemento actualmente seleccionado en el control ListBox.

SelectedItemsObtiene una colección que contiene los elementos actualmente seleccionados en el control ListBox.

SelectedValue Lee o escribe el valor de la propiedad miembro especificada por la propiedad ValueMember.

SelectionModeLee o escribe el método en el que se seleccionan los elementos del control ListBox.

Site Lee o escribe el sitio del control.

Size Lee o escribe el alto y el ancho del control.

SortedLee o escribe un valor que indica si los elementos del control ListBox se ordenan alfabéticamente.

TabIndex Lee o escribe el orden de tabulación del control en su contenedor.

TabStop Lee o escribe un valor que indica si el usuario puede dar el foco a este control mediante la tecla TAB.

Tag Lee o escribe el objeto que contiene datos sobre el control.

APLICACIONES WINDOWS CON VB.NET

83

Page 170: Módulo_7_Aplicaciones Windows con VB

TextObtiene o busca el texto del elemento actualmente seleccionado en el control ListBox.

Top Lee o escribe la coordenada y del borde superior del control, en píxeles.

TopIndexLee o escribe el índice del primer elemento visible del control ListBox.

TopLevelControl Obtiene el control principal que no es secundario de ningún otro control de formularios Windows Forms.Normalmente, se trata del Form más externo en el que está contenido el control.

UseTabStopsLee o escribe un valor que indica si el control ListBox puede reconocer y expandir los caracteres de tabulaciónal dibujar sus cadenas.

ValueMember Lee o escribe una cadena que especifica la propiedad del origen de datos a partir de la cual se va a dibujarel valor.

Visible Lee o escribe un valor que indica si se muestra el control.

Width Lee o escribe el ancho del control.

MÉTODOS PÚBLICOS

BeginInvoke Ejecuta un delegado de forma asincrónica en el subproceso donde se creó el identificador subyacente delcontrol.

BeginUpdateMantiene el rendimiento mientras se agregan elementos al control ListBox de uno en uno al impedir que sedibuje el control hasta que se llame al método EndUpdate.

BringToFront Coloca el control al principio del orden Z. cuando se superponen objetos.

APLICACIONES WINDOWS CON VB.NET

84

Page 171: Módulo_7_Aplicaciones Windows con VB

ClearSelectedAnula la selección de todos los elementos del control ListBox.

Contains Obtiene un valor que indica si el control especificado es un control secundario del control.

CreateControl Obliga a que se cree el control, incluidos el identificador y los controles secundarios.

CreateGraphics Crea el objeto Graphics para el control.

CreateObjRefCrea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado paracomunicarse con un objeto remoto.

DisposeLibera los recursos utilizados por Component.

DoDragDrop Inicia una operación de arrastrar y colocar.

EndInvoke Recupera el valor devuelto por la operación asíncrona representada por el objeto IAsyncResult que se pasa.

EndUpdateReanuda el dibujo del control ListBox después de haber sido suspendido por el método BeginUpdate.

EqualsDetermina si dos instancias de Object son iguales.

FindForm Recupera el formulario en el que se encuentra el control.

FindStringBusca el primer elemento del control ListBox que comience por la cadena especificada.

FindStringExactBusca el primer elemento del control ListBox que coincida exactamente con la cadena especificada.

APLICACIONES WINDOWS CON VB.NET

85

Page 172: Módulo_7_Aplicaciones Windows con VB

Focus Establece el foco de entrada en el control.

GetChildAtPoint Recupera el control secundario ubicado en las coordenadas especificadas.

GetContainerControl Devuelve el siguiente ContainerControl (en sentido ascendente) de la cadena de controles principales delcontrol.

GetHashCode Sirve como función hash para un tipo concreto, apropiado para su utilización en algoritmos de hash yestructuras de datos como las tablas hash.

GetItemHeightDevuelve el alto de un elemento del control ListBox.

GetItemRectangleDevuelve el rectángulo delimitador de un elemento del control ListBox.

GetItemTextDevuelve la representación de texto del elemento especificado.

GetLifetimeServiceRecupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

GetNextControl Recupera el siguiente control, hacia delante o hacia atrás, en el orden de tabulación de controlessecundarios.

GetSelectedDevuelve un valor que indica si el elemento especificado está seleccionado.

GetTypeObtiene el objeto Type de la instancia actual.

Hide Oculta el control al usuario.

APLICACIONES WINDOWS CON VB.NET

86

Page 173: Módulo_7_Aplicaciones Windows con VB

IndexFromPointDevuelve el índice de base cero del elemento en las coordenadas especificadas.

InitializeLifetimeService Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

Invalidate Invalida una región específica del control y hace que se envíe un mensaje de dibujo al control.

Invoke Ejecuta un delegado en el subproceso que posee el identificador de ventana subyacente del control.

PerformLayout Obliga al control a aplicar la lógica de diseño a los controles secundarios.

PointToClient Calcula la ubicación del punto especificado de la pantalla, en coordenadas de cliente.

PointToScreen Calcula la ubicación del punto especificado de cliente en coordenadas de pantalla.

PreProcessMessage Preprocesa los mensajes de entrada en el bucle de mensajes antes de enviarlos.

RectangleToClient Calcula el tamaño y la ubicación del rectángulo de pantalla especificado, en coordenadas de cliente.

RectangleToScreen Calcula el tamaño y la ubicación del rectángulo de cliente especificado, en coordenadas de pantalla.

Refresh Obliga al control a invalidar su área cliente y, acto seguido, obliga a que vuelva a dibujarse el control y suscontroles secundarios.

ResetBackColor Restablece el valor predeterminado de la propiedad BackColor.

ResetBindings Restablece el valor predeterminado de la propiedad DataBindings.

APLICACIONES WINDOWS CON VB.NET

87

Page 174: Módulo_7_Aplicaciones Windows con VB

ResetCursor Restablece el valor predeterminado de la propiedad Cursor.

ResetFont Restablece el valor predeterminado de la propiedad Font.

ResetForeColor Restablece el valor predeterminado de la propiedad ForeColor.

ResetImeMode Restablece el valor predeterminado de la propiedad ImeMode.

ResetRightToLeft Restablece el valor predeterminado de la propiedad RightToLeft.

ResetText Restablece el valor predeterminado de la propiedad Text.

ResumeLayout Reanuda la lógica de diseño habitual.

Scale Ajusta la escala del control y de todos los controles secundarios.

Select Activa un control.

SelectNextControl Activa el siguiente control.

SendToBack Envía el control al final del orden Z. en la superposición de objetos.

SetBounds Establece los límites del control.

SetSelectedActiva o desactiva la selección del elemento especificado de un control ListBox.

APLICACIONES WINDOWS CON VB.NET

88

Page 175: Módulo_7_Aplicaciones Windows con VB

Show Muestra el control al usuario.

SuspendLayout Suspende temporalmente la lógica de diseño del control.

ToStringVea Object.ToString.

Update Hace que el control vuelva a dibujar las regiones invalidadas con su área cliente.

EVENTOS PÚBLICOS

BackColorChanged Se produce cuando el valor de la propiedad BackColor cambia.

BackgroundImageChanged Se produce cuando el valor de la propiedad BackgroundImage cambia.

BindingContextChanged Se produce cuando el valor de la propiedad BindingContext cambia.

CausesValidationChanged Se produce cuando el valor de la propiedad CausesValidation cambia.

ChangeUICues Se produce cuando cambian las guías de la interfaz de usuario para el foco o el teclado.

ContextMenuChanged Se produce cuando el valor de la propiedad ContextMenu cambia.

ControlAdded Se produce cuando se agrega un nuevo control a Control.ControlCollection.

ControlRemoved Se produce cuando se quita un control de Control.ControlCollection.

APLICACIONES WINDOWS CON VB.NET

89

Page 176: Módulo_7_Aplicaciones Windows con VB

CursorChanged Se produce cuando el valor de la propiedad Cursor cambia.

DataSourceChanged Se produce cuando DataSource cambia.

DisplayMemberChangedSe produce cuando cambia la propiedad DisplayMember.

Disposed Agrega un controlador de eventos para escuchar al evento Disposed en el componente.

DockChanged Se produce cuando el valor de la propiedad Dock cambia.

DoubleClick Se produce cuando se hace doble clic en el control.

DragDrop Se produce cuando termina una operación de arrastrar y colocar.

DragEnter Se produce cuando se arrastra un objeto dentro de los límites del control.

DragLeave Se produce cuando se arrastra un objeto fuera de los límites del control.

DragOver Se produce cuando se arrastra un objeto sobre los límites del control.

DrawItemSe produce cuando cambia la apariencia de un control ListBox dibujado por el propietario.

EnabledChanged Se produce cuando cambia el valor de la propiedad Enabled.

Enter Se produce cuando se entra en el control.

APLICACIONES WINDOWS CON VB.NET

90

Page 177: Módulo_7_Aplicaciones Windows con VB

FontChanged Se produce cuando cambia el valor de la propiedad Font.

ForeColorChanged Se produce cuando cambia el valor de la propiedad ForeColor.

GiveFeedback Se produce durante una operación de arrastre.

GotFocus Se produce cuando el control recibe el foco.

HandleCreated Se produce cuando se crea un identificador para el control.

HandleDestroyed Se produce cuando el identificador del control está en proceso de eliminación.

HelpRequested Se produce cuando el usuario solicita ayuda para un control.

ImeModeChanged Se produce cuando cambia la propiedad ImeMode.

Invalidated Se produce cuando es necesario volver a dibujar un control.

KeyDown Se produce cuando se presiona una tecla mientras el control tiene el foco.

KeyPress Se produce cuando se presiona una tecla mientras el control tiene el foco.

KeyUp Se produce cuando se suelta una tecla mientras el control tiene el foco.

Layout Se produce cuando un control debe volver a colocar sus controles secundarios.

APLICACIONES WINDOWS CON VB.NET

91

Page 178: Módulo_7_Aplicaciones Windows con VB

Leave Se produce cuando el foco de entrada deja el control.

LocationChanged Se produce cuando cambia el valor de la propiedad Location.

LostFocus Se produce cuando el control pierde el foco.

MeasureItemSe produce cuando se crea un control ListBox dibujado por el propietario y se determina el tamaño de loselementos de la lista.

MouseDown Se produce cuando el puntero del ratón está sobre el control y se presiona un botón del mouse.

MouseEnter Se produce cuando el puntero del ratón entra en el control.

MouseHover Se produce cuando el puntero del ratón se sitúa encima del control.

MouseLeave Se produce cuando el puntero del ratón deja el control.

MouseMove Se produce cuando el puntero del ratón se mueve sobre el control.

MouseUp Se produce cuando el puntero del ratón está encima del control y se suelta un botón del mouse.

MouseWheel Se produce cuando la rueda del ratón se mueve mientras el control tiene el foco.

Move Se produce cuando se mueve el control.

ParentChanged Se produce cuando cambia el valor de la propiedad Parent.

APLICACIONES WINDOWS CON VB.NET

92

Page 179: Módulo_7_Aplicaciones Windows con VB

QueryAccessibilityHelp Se produce cuando AccessibleObject proporciona ayuda para aplicaciones de accesibilidad.

QueryContinueDrag Se produce durante una operación de arrastrar y colocar y permite al origen de arrastre determinar si laoperación de arrastrar y colocar tiene que cancelarse.

Resize Se produce cuando se cambia el tamaño del control.

RightToLeftChanged Se produce cuando cambia el valor de la propiedad RightToLeft.

SelectedIndexChangedSe produce cuando cambia la propiedad SelectedIndex.

SelectedValueChangedSe produce cuando cambia la propiedad SelectedValue.

SizeChanged Se produce cuando cambia el valor de la propiedad Size.

StyleChanged Se produce cuando cambia el estilo del control.

SystemColorsChanged Se produce cuando se modifican los colores del sistema.

TabIndexChanged Se produce cuando cambia el valor de la propiedad TabIndex.

TabStopChanged Se produce cuando cambia el valor de la propiedad TabStop.

TextChanged Se produce cuando cambia el valor de la propiedad Text.

Validated Se produce cuando finaliza la validación del control.

APLICACIONES WINDOWS CON VB.NET

93

Page 180: Módulo_7_Aplicaciones Windows con VB

Validating Se produce cuando el control se está validando.

ValueMemberChanged Se produce cuando cambia la propiedad ValueMember.

VisibleChanged Se produce cuando cambia el valor de la propiedad Visible.

La mayoría de las características de los cuadros combinados están disponibles en los cuadros de lista, comosaber cual es el elemento que se ha seleccionado, añadir nuevos elementos, eliminarlos, cambiarlos,insertarlos, etc.

Voy a mostrar las características propias del cuadro de lista.

Especificar que se pueden seleccionar varios elementos a la vezExisten varios tipos de selección disponibles en un cuadro de lista, esto son:

ListBox1.SelectionMode = SelectionMode.MultiSimpleListBox1.SelectionMode = SelectionMode.MultiExtendedListBox1.SelectionMode = SelectionMode.OneListBox1.SelectionMode = SelectionMode.None

La extensión múltiple, permite que el usuario pueda seleccionar varios elementos del cuadro de listasimplemente pinchándolos, cada vez que pincha uno se va sobre iluminando, si se vuelve a pinchar en unosobre iluminado se deselecciona.

La selección múltiple ampliada permite seleccionar los elementos del cuadro de lista como se realizan lasselecciones en Windows, utilizando la tecla CTRL, MAYUSCULAS y pinchando con el ratón.

None especifica que el usuario no puede seleccionar ningún elemento del cuadro de lista.

One es la opción por defecto.

Captar todos los elementos de una selección múltiple

APLICACIONES WINDOWS CON VB.NET

94

Page 181: Módulo_7_Aplicaciones Windows con VB

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click

Dim valor As String

For Each valor In ListBox1.SelectedItemsMessageBox.Show(valor)

Next

End Sub

SelectedItems contiene en un momento todos los elementos de un cuadro de lista que se hayan seleccionado.

Visualización en múltiples columnasPermite que los cuadros de lista tengan una distribución horizontal en vez de vertical.

Para conseguir esto primeramente se ha de procurar que los elementos que se muestran en un cuadro de listano quepan en la ventana de visualización, después se establece la propiedad Multicolumn a true.

Es posible determinar el ancho de visualización de las columnas de un cuadro de lista mediante la propiedad, ColumnWidth si se deja en cero, el ancho es el predeterminado que es el suficiente para que se vean todoslos elementos en su totalidad.

Casilla de Verificación

Es un control que ofrece al usuario la posibilidad de seleccionar varias opciones cada una de las cuales solopuede tener dos valores, o estar activa o no estar activa, el VB muestra una cruz cuando la opción estaactiva o deja el cuadro en blanco cuando esta inactiva, simula formularios impresos en donde se le pide porejemplo al usuario si esta trabajando o no.

Voy a mostrar un listado con todas las posibilidades del control.

APLICACIONES WINDOWS CON VB.NET

95

Page 182: Módulo_7_Aplicaciones Windows con VB

PROPIEDADES PÚBLICAS

AccessibilityObject Obtiene AccessibleObject asignado al control.

AccessibleDefaultActionDescription Lee o escribe la descripción de la acción predeterminada del control que las aplicaciones cliente deaccesibilidad utilizan.

AccessibleDescription Lee o escribe la descripción del control que las aplicaciones cliente de accesibilidad utilizan.

AccessibleName Lee o escribe el nombre del control que las aplicaciones cliente de accesibilidad utilizan.

AccessibleRole Lee o escribe la función accesible del control.

AllowDrop Lee o escribe un valor que indica si el control puede aceptar los datos que el usuario arrastra al mismo.

Anchor Lee o escribe los bordes del control que se acoplan a los bordes de su contenedor.

AppearanceLee o escribe un valor que determina la apariencia de un control de casilla de verificación.

AutoCheckLee o escribe un valor que indica si los valores Checked o CheckState y la apariencia de la casilla deverificación cambian automáticamente al hacer clic en ella.

BackColor Lee o escribe el color de fondo del control.

BackgroundImage Lee o escribe la imagen de fondo que se muestra en el control.

BindingContext Lee o escribe BindingContext del control.

APLICACIONES WINDOWS CON VB.NET

96

Page 183: Módulo_7_Aplicaciones Windows con VB

Bottom Obtiene la distancia que existe entre el borde inferior del control y el borde superior del área cliente de sucontenedor.

Bounds Lee o escribe el tamaño y la ubicación del control.

CanFocus Obtiene un valor que indica si el control puede recibir el foco.

CanSelect Obtiene un valor que indica si el control se puede seleccionar.

Capture Lee o escribe un valor que indica si el control ha capturado el mouse (ratón).

CausesValidation Lee o escribe un valor que indica si el control hace que se realice una validación de todos los controles querequieren validación cuando reciben el foco.

CheckAlignLee o escribe la alineación horizontal y vertical de una casilla de verificación en un control CheckBox.

CheckedLee o escribe un valor que indica si el estado de la casilla de verificación es el de activada.

CheckStateLee o escribe el estado de la casilla de verificación.

ClientRectangle Obtiene el rectángulo que representa el área cliente del control.

ClientSize Lee o escribe el alto y el ancho del área cliente del control.

CompanyName Obtiene el nombre de la compañía o del creador de la aplicación que contiene el control.

APLICACIONES WINDOWS CON VB.NET

97

Page 184: Módulo_7_Aplicaciones Windows con VB

ContainerObtiene IContainer que contiene Component.

ContainsFocus Obtiene un valor que indica si el control, o uno de sus controles secundarios, tiene el foco de entrada en laactualidad.

ContextMenu Lee o escribe el menú contextual asociado al control.

Controls Obtiene la colección de controles que contiene el control.

Created Obtiene un valor que indica si se ha creado el control.

Cursor Lee o escribe el cursor que se muestra cuando el puntero del mouse se sitúa sobre el control.

DataBindings Obtiene los enlaces de datos del control.

DisplayRectangle Obtiene el rectángulo que representa el área de presentación del control.

Disposing Obtiene un valor que indica si el control está en proceso de eliminación.

Dock Lee o escribe el borde del contenedor principal al que está acoplado un control.

Enabled Lee o escribe un valor que indica si el control puede responder a la interacción del usuario.

FlatStyleLee o escribe la apariencia de estilo plano del control de botón.

Focused Obtiene un valor que indica si el control tiene el foco de entrada.

APLICACIONES WINDOWS CON VB.NET

98

Page 185: Módulo_7_Aplicaciones Windows con VB

Font Lee o escribe la fuente del texto que muestra el control.

ForeColor Lee o escribe el color de primer plano del control.

Handle Obtiene el identificador de ventana al que está enlazado el control.

HasChildren Obtiene un valor que indica si el control contiene uno o más controles secundarios.

Height Lee o escribe el alto del control.

ImageLee o escribe la imagen que se muestra en un control de botón.

ImageAlign Lee o escribe la alineación de la imagen en el control de botón.

ImageIndexLee o escribe el valor de índice de la lista de imágenes correspondiente a la imagen mostrada en el controlde botón.

ImageListLee o escribe el objeto ImageList que contiene el objeto Image que se muestra en un control de botón.

ImeModeLee o escribe el modo del Editor de métodos de entrada (IME) que este control admite.

InvokeRequired Obtiene un valor que indica si el llamador debe llamar a un método de invocación cuando realiza llamadasa métodos del control porque el llamador se encuentra en un subproceso distinto al del control donde se creó.

IsAccessible Lee o escribe un valor que indica si el control es visible para las aplicaciones de accesibilidad.

APLICACIONES WINDOWS CON VB.NET

99

Page 186: Módulo_7_Aplicaciones Windows con VB

IsDisposed Obtiene un valor que indica si el control se ha eliminado.

IsHandleCreated Obtiene un valor que indica si el control tiene un identificador asociado.

Left Lee o escribe la coordenada x del borde izquierdo de un control, en píxeles.

Location Lee o escribe las coordenadas de la esquina superior izquierda del control en relación con la esquina superiorizquierda de su contenedor.

Name Lee o escribe el nombre del control.

Parent Lee o escribe el contenedor principal del control.

ProductName Obtiene el nombre de producto del ensamblado que contiene el control.

ProductVersion Obtiene la versión del ensamblado que contiene el control.

RecreatingHandle Obtiene un valor que indica si el control está volviendo a crear su identificador en la actualidad.

Region Lee o escribe la región de ventana asociada al control.

Right Obtiene la distancia entre el borde derecho del control y el borde izquierdo de su contenedor.

RightToLeft Lee o escribe un valor que indica si los elementos del control se alinean para admitir configuracionesregionales utilizando fuentes de derecha a izquierda.

APLICACIONES WINDOWS CON VB.NET

100

Page 187: Módulo_7_Aplicaciones Windows con VB

Site Lee o escribe el sitio del control.

Size Lee o escribe el alto y el ancho del control.

TabIndex Lee o escribe el orden de tabulación del control en su contenedor.

TabStop Lee o escribe un valor que indica si el usuario puede dar el foco a este control mediante la tecla TAB.

Tag Lee o escribe el objeto que contiene datos sobre el control.

Text Lee o escribe el texto asociado al control.

TextAlignVea ButtonBase.TextAlign.

ThreeStateLee o escribe un valor que indica si la casilla de verificación permitirá tres estados de verificación en lugarde dos.

Top Lee o escribe la coordenada y del borde superior del control, en píxeles.

TopLevelControl Obtiene el control principal que no es secundario de ningún otro control de formularios Windows Forms.Normalmente, se trata del Form más externo en el que está contenido el control.

Visible Lee o escribe un valor que indica si se muestra el control.

Width Lee o escribe el ancho del control.

APLICACIONES WINDOWS CON VB.NET

101

Page 188: Módulo_7_Aplicaciones Windows con VB

MÉTODOS PÚBLICOS

BeginInvoke Ejecuta un delegado de forma asincrónica en el subproceso donde se creó el identificador subyacente delcontrol.

BringToFront Coloca el control al principio del orden Z.

Contains Obtiene un valor que indica si el control especificado es un control secundario del control.

CreateControl Obliga a que se cree el control, incluidos el identificador y los controles secundarios.

CreateGraphics Crea el objeto Graphics para el control.

CreateObjRefCrea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado paracomunicarse con un objeto remoto.

DisposeLibera los recursos utilizados por Component.

DoDragDrop Inicia una operación de arrastrar y colocar.

EndInvoke Recupera el valor devuelto por la operación asíncrona representada por el objeto IAsyncResult que se pasa.

Equals (se hereda de Object)Determina si dos instancias de Object son iguales.

FindForm Recupera el formulario en el que se encuentra el control.

Focus Establece el foco de entrada en el control.

APLICACIONES WINDOWS CON VB.NET

102

Page 189: Módulo_7_Aplicaciones Windows con VB

GetChildAtPoint Recupera el control secundario ubicado en las coordenadas especificadas.

GetContainerControl Devuelve el siguiente ContainerControl (en sentido ascendente) de la cadena de controles principales delcontrol.

GetHashCode Sirve como función hash para un tipo concreto, apropiado para su utilización en algoritmos de hash yestructuras de datos como las tablas hash.

GetLifetimeServiceRecupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

GetNextControl Recupera el siguiente control, hacia delante o hacia atrás, en el orden de tabulación de controlessecundarios.

GetTypeObtiene el objeto Type de la instancia actual.

Hide Oculta el control al usuario.

InitializeLifetimeServiceObtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

Invalidate Invalida una región específica del control y hace que se envíe un mensaje de dibujo al control.

Invoke Ejecuta un delegado en el subproceso que posee el identificador de ventana subyacente del control.

PerformLayout Obliga al control a aplicar la lógica de diseño a los controles secundarios.

PointToClient Calcula la ubicación del punto especificado de la pantalla, en coordenadas de cliente.

APLICACIONES WINDOWS CON VB.NET

103

Page 190: Módulo_7_Aplicaciones Windows con VB

PointToScreen Calcula la ubicación del punto especificado de cliente en coordenadas de pantalla.

PreProcessMessage Preprocesa los mensajes de entrada en el bucle de mensajes antes de enviarlos.

RectangleToClient Calcula el tamaño y la ubicación del rectángulo de pantalla especificado, en coordenadas de cliente.

RectangleToScreen Calcula el tamaño y la ubicación del rectángulo de cliente especificado, en coordenadas de pantalla.

Refresh Obliga al control a invalidar su área cliente y, acto seguido, obliga a que vuelva a dibujarse el control y suscontroles secundarios.

ResetBackColor Restablece el valor predeterminado de la propiedad BackColor.

ResetBindings Restablece el valor predeterminado de la propiedad DataBindings.

ResetCursor Restablece el valor predeterminado de la propiedad Cursor.

ResetFont Restablece el valor predeterminado de la propiedad Font.

ResetForeColor Restablece el valor predeterminado de la propiedad ForeColor.

ResetImeMode Restablece el valor predeterminado de la propiedad ImeMode.

ResetRightToLeft Restablece el valor predeterminado de la propiedad RightToLeft.

ResetText Restablece el valor predeterminado de la propiedad Text.

APLICACIONES WINDOWS CON VB.NET

104

Page 191: Módulo_7_Aplicaciones Windows con VB

ResumeLayout Reanuda la lógica de diseño habitual.

Scale Ajusta la escala del control y de todos los controles secundarios.

Select Activa un control.

SelectNextControl Activa el siguiente control.

SendToBack Envía el control al final del orden Z.

SetBounds Establece los límites del control.

Show Muestra el control al usuario.

SuspendLayout Suspende temporalmente la lógica de diseño del control.

ToStringVea Object.ToString.

Update Hace que el control vuelva a dibujar las regiones invalidadas con su área cliente.

EVENTOS PÚBLICOS

AppearanceChangedSe produce cuando cambia el valor de la propiedad Appearance.

BackColorChanged Se produce cuando el valor de la propiedad BackColor cambia.

APLICACIONES WINDOWS CON VB.NET

105

Page 192: Módulo_7_Aplicaciones Windows con VB

BackgroundImageChanged Se produce cuando el valor de la propiedad BackgroundImage cambia.

BindingContextChanged Se produce cuando el valor de la propiedad BindingContext cambia.

CausesValidationChanged Se produce cuando el valor de la propiedad CausesValidation cambia.

ChangeUICues Se produce cuando cambian las guías de la interfaz de usuario para el foco o el teclado.

CheckedChangedSe produce cuando cambia el valor de la propiedad Checked.

CheckStateChangedSe produce cuando cambia el valor de la propiedad CheckState.

Click Se produce cuando se hace clic en el control.

ContextMenuChanged Se produce cuando el valor de la propiedad ContextMenu cambia.

ControlAdded Se produce cuando se agrega un nuevo control a Control.ControlCollection.

ControlRemoved Se produce cuando se quita un control de Control.ControlCollection.

CursorChanged Se produce cuando el valor de la propiedad Cursor cambia.

DisposedAgrega un controlador de eventos para escuchar al evento Disposed en el componente.

DockChanged Se produce cuando el valor de la propiedad Dock cambia.

APLICACIONES WINDOWS CON VB.NET

106

Page 193: Módulo_7_Aplicaciones Windows con VB

DoubleClick Se produce cuando se hace doble clic en el control.

DragDrop Se produce cuando termina una operación de arrastrar y colocar.

DragEnter Se produce cuando se arrastra un objeto dentro de los límites del control.

DragLeave Se produce cuando se arrastra un objeto fuera de los límites del control.

DragOver Se produce cuando se arrastra un objeto sobre los límites del control.

EnabledChanged Se produce cuando cambia el valor de la propiedad Enabled.

Enter Se produce cuando se entra en el control.

FontChanged Se produce cuando cambia el valor de la propiedad Font.

ForeColorChanged Se produce cuando cambia el valor de la propiedad ForeColor.

GiveFeedback Se produce durante una operación de arrastre.

GotFocus Se produce cuando el control recibe el foco.

HandleCreated Se produce cuando se crea un identificador para el control.

HandleDestroyed Se produce cuando el identificador del control está en proceso de eliminación.

APLICACIONES WINDOWS CON VB.NET

107

Page 194: Módulo_7_Aplicaciones Windows con VB

HelpRequested Se produce cuando el usuario solicita ayuda para un control.

ImeModeChanged Se produce cuando cambia la propiedad ImeMode.

Invalidated Se produce cuando es necesario volver a dibujar un control.

KeyDown Se produce cuando se presiona una tecla mientras el control tiene el foco.

KeyPress Se produce cuando se presiona una tecla mientras el control tiene el foco.

KeyUp Se produce cuando se suelta una tecla mientras el control tiene el foco.

Layout Se produce cuando un control debe volver a colocar sus controles secundarios.

Leave Se produce cuando el foco de entrada deja el control.

LocationChanged Se produce cuando cambia el valor de la propiedad Location.

LostFocus Se produce cuando el control pierde el foco.

MouseDown Se produce cuando el puntero del ratón está sobre el control y se presiona un botón del mouse.

MouseEnter Se produce cuando el puntero del ratón entra en el control.

MouseHover Se produce cuando el puntero del ratón se sitúa encima del control.

APLICACIONES WINDOWS CON VB.NET

108

Page 195: Módulo_7_Aplicaciones Windows con VB

MouseLeave Se produce cuando el puntero del ratón deja el control.

MouseMove Se produce cuando el puntero del ratón se mueve sobre el control.

MouseUp Se produce cuando el puntero del ratón está encima del control y se suelta un botón del mouse.

MouseWheel Se produce cuando la rueda del ratón se mueve mientras el control tiene el foco.

Move Se produce cuando se mueve el control.

Paint Se produce cuando vuelve a dibujarse el control.

ParentChanged Se produce cuando cambia el valor de la propiedad Parent.

QueryAccessibilityHelp Se produce cuando AccessibleObject proporciona ayuda para aplicaciones de accesibilidad.

QueryContinueDrag Se produce durante una operación de arrastrar y colocar y permite al origen de arrastre determinar si laoperación de arrastrar y colocar tiene que cancelarse.

Resize Se produce cuando se cambia el tamaño del control.

RightToLeftChanged Se produce cuando cambia el valor de la propiedad RightToLeft.

SizeChanged Se produce cuando cambia el valor de la propiedad Size.

StyleChanged Se produce cuando cambia el estilo del control.

APLICACIONES WINDOWS CON VB.NET

109

Page 196: Módulo_7_Aplicaciones Windows con VB

SystemColorsChanged Se produce cuando se modifican los colores del sistema.

TabIndexChanged Se produce cuando cambia el valor de la propiedad TabIndex.

TabStopChanged Se produce cuando cambia el valor de la propiedad TabStop.

TextChanged Se produce cuando cambia el valor de la propiedad Text.

Validated Se produce cuando finaliza la validación del control.

Validating Se produce cuando el control se está validando.

VisibleChanged Se produce cuando cambia el valor de la propiedad Visible.

Establecer tres estados posibles para las casillas

Las casillas de verificación normalmente tienen dos estados, estar activadas o no, que se muestran con unacruz dentro del recuadro o no.

Es posible que pueda haber otro estado que es el de indeterminado, en el que se muestra la cruz pero conuna sombra.

CheckBox3.ThreeState = TrueAveriguar el estado de una casilla de verificación

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickIf CheckBox3.CheckState = CheckState.Checked Then

MessageBox.Show(“LA PRIMERA CASILLA ESTA ACTIVADA”)ElseIf CheckBox3.CheckState = CheckState.Indeterminate Then

MessageBox.Show(“LA CASILLA ESTA EN ESTADO INDETERMINADO”)CheckBox3.ThreeState = True

End IfEnd Sub

APLICACIONES WINDOWS CON VB.NET

110

Page 197: Módulo_7_Aplicaciones Windows con VB

En el ejemplo se ve como se puede averiguar que una casilla esté en estado activo o bien en estadoindeterminado.

Una alternativa al código anterior puede ser:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.ClickDim objeto As Object

For Each objeto In Me.ControlsIf objeto.GetType.ToString = “System.Windows.Forms.CheckBox” Then

MessageBox.Show(objeto.checkstate.ToString & “ CAJA “ & objeto.NAME)End IfNextEnd Sub

En este código estoy utilizando la colección Controls de mi formulario, esta contiene todos los controles queen este momento estén en el formulario. Recorro todo los controles y averiguo de que tipo son, si son casillas de verificación muestro el estado y elnombre del control.

Botón de Opción

Es un control muy parecido al anterior, el usuario tiene la posibilidad de activar o no una serie de opcionesque se le muestran en un formulario, la diferencia esta en que las opciones son alternativas no acumulativascomo sucedía con las casillas de verificación. Cuando una de las opciones se activa, se muestra un pequeñocírculo negro en su interior, las otras automáticamente se desactivan.

Permite pedir al usuario que opte por opciones alternativas, por ejemplo estado civil, que puede ser casado,soltero, viudo, divorciado, separado.

Voy a mostrar un listado como en los demás controles.

APLICACIONES WINDOWS CON VB.NET

111

Page 198: Módulo_7_Aplicaciones Windows con VB

PROPIEDADES PÚBLICAS

AccessibilityObject Obtiene AccessibleObject asignado al control.

AccessibleDefaultActionDescription Lee o escribe la descripción de la acción predeterminada del control que las aplicaciones cliente deaccesibilidad utilizan.

AccessibleDescription Lee o escribe la descripción del control que las aplicaciones cliente de accesibilidad utilizan.

AccessibleName Lee o escribe el nombre del control que las aplicaciones cliente de accesibilidad utilizan.

AccessibleRole Lee o escribe la función accesible del control.

AllowDrop Lee o escribe un valor que indica si el control puede aceptar los datos que el usuario arrastra al mismo.

Anchor Lee o escribe los bordes del control que se acoplan a los bordes de su contenedor.

AppearanceLee o escribe el valor que determina el aspecto del control de botón de opción.

AutoCheckLee o escribe un valor que indica si el valor de Checked y el aspecto del control cambian automáticamenteal hacer clic en el control.

BackColor Lee o escribe el color de fondo del control.

BackgroundImage Lee o escribe la imagen de fondo que se muestra en el control.

BindingContext Lee o escribe BindingContext del control.

APLICACIONES WINDOWS CON VB.NET

112

Page 199: Módulo_7_Aplicaciones Windows con VB

Bottom Obtiene la distancia que existe entre el borde inferior del control y el borde superior del área cliente de sucontenedor.

Bounds Lee o escribe el tamaño y la ubicación del control.

CanFocus Obtiene un valor que indica si el control puede recibir el foco.

CanSelect Obtiene un valor que indica si el control se puede seleccionar.

Capture Lee o escribe un valor que indica si el control ha capturado el mouse (ratón).

CausesValidation Lee o escribe un valor que indica si el control hace que se realice una validación de todos los controles querequieren validación cuando reciben el foco.

CheckAlignLee o escribe la ubicación de la parte de casilla de verificación del control de botón de opción.

CheckedLee o escribe un valor que indica si el control está activado.

ClientRectangle Obtiene el rectángulo que representa el área cliente del control.

ClientSize Lee o escribe el alto y el ancho del área cliente del control.

CompanyName Obtiene el nombre de la compañía o del creador de la aplicación que contiene el control.

ContainerObtiene IContainer que contiene Component.

APLICACIONES WINDOWS CON VB.NET

113

Page 200: Módulo_7_Aplicaciones Windows con VB

ContainsFocus Obtiene un valor que indica si el control, o uno de sus controles secundarios, tiene el foco de entrada en laactualidad.

ContextMenu Lee o escribe el menú contextual asociado al control.

Controls Obtiene la colección de controles que contiene el control.

Created Obtiene un valor que indica si se ha creado el control.

Cursor Lee o escribe el cursor que se muestra cuando el puntero del mouse se sitúa sobre el control.

DataBindings Obtiene los enlaces de datos del control.

DisplayRectangle Obtiene el rectángulo que representa el área de presentación del control.

Disposing Obtiene un valor que indica si el control está en proceso de eliminación.

Dock Lee o escribe el borde del contenedor principal al que está acoplado un control.

Enabled Lee o escribe un valor que indica si el control puede responder a la interacción del usuario.

FlatStyleLee o escribe la apariencia de estilo plano del control de botón.

Focused Obtiene un valor que indica si el control tiene el foco de entrada.

Font Lee o escribe la fuente del texto que muestra el control.

APLICACIONES WINDOWS CON VB.NET

114

Page 201: Módulo_7_Aplicaciones Windows con VB

ForeColor Lee o escribe el color de primer plano del control.

Handle Obtiene el identificador de ventana al que está enlazado el control.

HasChildren Obtiene un valor que indica si el control contiene uno o más controles secundarios.

Height Lee o escribe el alto del control.

ImageLee o escribe la imagen que se muestra en un control de botón.

ImageAlignLee o escribe la alineación de la imagen en el control de botón.

ImageIndexLee o escribe el valor de índice de la lista de imágenes correspondiente a la imagen mostrada en el controlde botón.

ImageListLee o escribe el objeto ImageList que contiene el objeto Image que se muestra en un control de botón.

ImeModeLee o escribe el modo del Editor de métodos de entrada (IME) que este control admite.

InvokeRequired Obtiene un valor que indica si el llamador debe llamar a un método de invocación cuando realiza llamadasa métodos del control porque el llamador se encuentra en un subproceso distinto al del control donde se creó.

IsAccessible Lee o escribe un valor que indica si el control es visible para las aplicaciones de accesibilidad.

IsDisposed Obtiene un valor que indica si el control se ha eliminado.

APLICACIONES WINDOWS CON VB.NET

115

Page 202: Módulo_7_Aplicaciones Windows con VB

IsHandleCreated Obtiene un valor que indica si el control tiene un identificador asociado.

Left Lee o escribe la coordenada x del borde izquierdo de un control, en píxeles.

Location Lee o escribe las coordenadas de la esquina superior izquierda del control en relación con la esquina superiorizquierda de su contenedor.

Name Lee o escribe el nombre del control.

Parent Lee o escribe el contenedor principal del control.

ProductName Obtiene el nombre de producto del ensamblado que contiene el control.

ProductVersion Obtiene la versión del ensamblado que contiene el control.

RecreatingHandle Obtiene un valor que indica si el control está volviendo a crear su identificador en la actualidad.

Region Lee o escribe la región de ventana asociada al control.

Right Obtiene la distancia entre el borde derecho del control y el borde izquierdo de su contenedor.

RightToLeft Lee o escribe un valor que indica si los elementos del control se alinean para admitir configuracionesregionales utilizando fuentes de derecha a izquierda.

Site Lee o escribe el sitio del control.

APLICACIONES WINDOWS CON VB.NET

116

Page 203: Módulo_7_Aplicaciones Windows con VB

Size Lee o escribe el alto y el ancho del control.

TabIndex Lee o escribe el orden de tabulación del control en su contenedor.

Tag Lee o escribe el objeto que contiene datos sobre el control.

Text Lee o escribe el texto asociado al control.

TextAlignVea ButtonBase.TextAlign.

Top Lee o escribe la coordenada y del borde superior del control, en píxeles.

TopLevelControl Obtiene el control principal que no es secundario de ningún otro control de formularios Windows Forms.Normalmente, se trata del Form más externo en el que está contenido el control.

Visible Lee o escribe un valor que indica si se muestra el control.

Width Lee o escribe el ancho del control.

MÉTODOS PÚBLICOS

BeginInvoke Ejecuta un delegado de forma asincrónica en el subproceso donde se creó el identificador subyacente delcontrol.

BringToFront Coloca el control al principio del orden Z.

Contains Obtiene un valor que indica si el control especificado es un control secundario del control.

APLICACIONES WINDOWS CON VB.NET

117

Page 204: Módulo_7_Aplicaciones Windows con VB

CreateControl Obliga a que se cree el control, incluidos el identificador y los controles secundarios.

CreateGraphics Crea el objeto Graphics para el control.

CreateObjRefCrea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado paracomunicarse con un objeto remoto.

DisposeLibera los recursos utilizados por Component.

DoDragDrop Inicia una operación de arrastrar y colocar.

EndInvoke Recupera el valor devuelto por la operación asíncrona representada por el objeto IAsyncResult que se pasa.

Equals (se hereda de Object)Determina si dos instancias de Object son iguales.

FindForm Recupera el formulario en el que se encuentra el control.

Focus Establece el foco de entrada en el control.

GetChildAtPoint Recupera el control secundario ubicado en las coordenadas especificadas.

GetContainerControl Devuelve el siguiente ContainerControl (en sentido ascendente) de la cadena de controles principales delcontrol.

GetHashCode Sirve como función hash para un tipo concreto, apropiado para su utilización en algoritmos de hash yestructuras de datos como las tablas hash.

APLICACIONES WINDOWS CON VB.NET

118

Page 205: Módulo_7_Aplicaciones Windows con VB

GetLifetimeServiceRecupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

GetNextControl Recupera el siguiente control, hacia delante o hacia atrás, en el orden de tabulación de controlessecundarios.

GetTypeObtiene el objeto Type de la instancia actual.

Hide Oculta el control al usuario.

InitializeLifetimeService Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

Invalidate Invalida una región específica del control y hace que se envíe un mensaje de dibujo al control.

Invoke Ejecuta un delegado en el subproceso que posee el identificador de ventana subyacente del control.

PerformClickGenera un evento Click para el botón mediante la simulación de un clic realizado por un usuario.

PerformLayout Obliga al control a aplicar la lógica de diseño a los controles secundarios.

PointToClient Calcula la ubicación del punto especificado de la pantalla, en coordenadas de cliente.

PointToScreen Calcula la ubicación del punto especificado de cliente en coordenadas de pantalla.

PreProcessMessage Preprocesa los mensajes de entrada en el bucle de mensajes antes de enviarlos.

RectangleToClient Calcula el tamaño y la ubicación del rectángulo de pantalla especificado, en coordenadas de cliente.

APLICACIONES WINDOWS CON VB.NET

119

Page 206: Módulo_7_Aplicaciones Windows con VB

RectangleToScreen Calcula el tamaño y la ubicación del rectángulo de cliente especificado, en coordenadas de pantalla.

Refresh Obliga al control a invalidar su área cliente y, acto seguido, obliga a que vuelva a dibujarse el control y suscontroles secundarios.

ResetBackColor Restablece el valor predeterminado de la propiedad BackColor.

ResetBindings Restablece el valor predeterminado de la propiedad DataBindings.

ResetCursor Restablece el valor predeterminado de la propiedad Cursor.

ResetFont Restablece el valor predeterminado de la propiedad Font.

ResetForeColor Restablece el valor predeterminado de la propiedad ForeColor.

ResetImeMode Restablece el valor predeterminado de la propiedad ImeMode.

ResetRightToLeft Restablece el valor predeterminado de la propiedad RightToLeft.

ResetText Restablece el valor predeterminado de la propiedad Text.

ResumeLayout Reanuda la lógica de diseño habitual.

Scale Ajusta la escala del control y de todos los controles secundarios.

Select Activa un control.

APLICACIONES WINDOWS CON VB.NET

120

Page 207: Módulo_7_Aplicaciones Windows con VB

SelectNextControl Activa el siguiente control.

SendToBack Envía el control al final del orden Z.

SetBounds Establece los límites del control.

Show Muestra el control al usuario.

SuspendLayout Suspende temporalmente la lógica de diseño del control.

ToStringVea Object.ToString.

Update Hace que el control vuelva a dibujar las regiones invalidadas con su área cliente.

EVENTOS PÚBLICOS

AppearanceChangedSe produce cuando cambia el valor de la propiedad Appearance.

BackColorChanged Se produce cuando el valor de la propiedad BackColor cambia.

BackgroundImageChanged Se produce cuando el valor de la propiedad BackgroundImage cambia.

BindingContextChanged Se produce cuando el valor de la propiedad BindingContext cambia.

CausesValidationChanged Se produce cuando el valor de la propiedad CausesValidation cambia.

APLICACIONES WINDOWS CON VB.NET

121

Page 208: Módulo_7_Aplicaciones Windows con VB

ChangeUICues Se produce cuando cambian las guías de la interfaz de usuario para el foco o el teclado.

CheckedChangedSe produce cuando cambia el valor de la propiedad Checked.

Click Se produce cuando se hace clic en el control.

ContextMenuChanged Se produce cuando el valor de la propiedad ContextMenu cambia.

ControlAdded Se produce cuando se agrega un nuevo control a Control.ControlCollection.

ControlRemoved Se produce cuando se quita un control de Control.ControlCollection.

CursorChanged Se produce cuando el valor de la propiedad Cursor cambia.

DisposedAgrega un controlador de eventos para escuchar al evento Disposed en el componente.

DockChanged Se produce cuando el valor de la propiedad Dock cambia.

DoubleClick Se produce cuando se hace doble clic en el control.

DragDrop Se produce cuando termina una operación de arrastrar y colocar.

DragEnter Se produce cuando se arrastra un objeto dentro de los límites del control.

DragLeave Se produce cuando se arrastra un objeto fuera de los límites del control.

APLICACIONES WINDOWS CON VB.NET

122

Page 209: Módulo_7_Aplicaciones Windows con VB

DragOver Se produce cuando se arrastra un objeto sobre los límites del control.

EnabledChanged Se produce cuando cambia el valor de la propiedad Enabled.

Enter Se produce cuando se entra en el control.

FontChanged Se produce cuando cambia el valor de la propiedad Font.

ForeColorChanged Se produce cuando cambia el valor de la propiedad ForeColor.

GiveFeedback Se produce durante una operación de arrastre.

GotFocus Se produce cuando el control recibe el foco.

HandleCreated Se produce cuando se crea un identificador para el control.

HandleDestroyed Se produce cuando el identificador del control está en proceso de eliminación.

HelpRequested Se produce cuando el usuario solicita ayuda para un control.

ImeModeChanged Se produce cuando cambia la propiedad ImeMode.

Invalidated Se produce cuando es necesario volver a dibujar un control.

KeyDown Se produce cuando se presiona una tecla mientras el control tiene el foco.

APLICACIONES WINDOWS CON VB.NET

123

Page 210: Módulo_7_Aplicaciones Windows con VB

KeyPress Se produce cuando se presiona una tecla mientras el control tiene el foco.

KeyUp Se produce cuando se suelta una tecla mientras el control tiene el foco.

Layout Se produce cuando un control debe volver a colocar sus controles secundarios.

Leave Se produce cuando el foco de entrada deja el control.

LocationChanged Se produce cuando cambia el valor de la propiedad Location.

LostFocus Se produce cuando el control pierde el foco.

MouseDown Se produce cuando el puntero del mouse está sobre el control y se presiona un botón del mouse.

MouseEnter Se produce cuando el puntero del ratón entra en el control.

MouseHover Se produce cuando el puntero del ratón se sitúa encima del control.

MouseLeave Se produce cuando el puntero del ratón deja el control.

MouseMove Se produce cuando el puntero del ratón se mueve sobre el control.

MouseUp Se produce cuando el puntero del ratón está encima del control y se suelta un botón del mouse.

MouseWheel Se produce cuando la rueda del ratón se mueve mientras el control tiene el foco.

APLICACIONES WINDOWS CON VB.NET

124

Page 211: Módulo_7_Aplicaciones Windows con VB

Move Se produce cuando se mueve el control.

Paint Se produce cuando vuelve a dibujarse el control.

ParentChanged Se produce cuando cambia el valor de la propiedad Parent.

QueryAccessibilityHelp Se produce cuando AccessibleObject proporciona ayuda para aplicaciones de accesibilidad.

QueryContinueDrag Se produce durante una operación de arrastrar y colocar y permite al origen de arrastre determinar si laoperación de arrastrar y colocar tiene que cancelarse.

Resize Se produce cuando se cambia el tamaño del control.

RightToLeftChanged Se produce cuando cambia el valor de la propiedad RightToLeft.

SizeChanged Se produce cuando cambia el valor de la propiedad Size.

StyleChanged Se produce cuando cambia el estilo del control.

SystemColorsChanged Se produce cuando se modifican los colores del sistema.

TabIndexChanged Se produce cuando cambia el valor de la propiedad TabIndex.

TabStopChanged Se produce cuando cambia el valor de la propiedad TabStop.

TextChanged Se produce cuando cambia el valor de la propiedad Text.

APLICACIONES WINDOWS CON VB.NET

125

Page 212: Módulo_7_Aplicaciones Windows con VB

Validated Se produce cuando finaliza la validación del control.

Validating Se produce cuando el control se está validando.

VisibleChanged Se produce cuando cambia el valor de la propiedad Visible.

Como se ve es prácticamente igual que el control de casilla de verificación.

Averiguar el estado de un botón de opción

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

If RadioButton1.Checked = True ThenMessageBox.Show(“se ha pulsado el primer botón de opcion”)

End IfEnd Sub

Ahora dado que un botón de opción solo puede tener dos estados, solamente con saber si esta en estadoactivo, ya se sabe como ha interactuado el usuario con el control.

Para averiguar cual de todos los botones de opción que están en un formulario es el que está activo podíamosponer el siguiente código.

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

Dim boton As ObjectFor Each boton In Me.Controls

If boton.GetType.ToString = “System.Windows.Forms.RadioButton” ThenMessageBox.Show(boton.checked)If boton.checked = True Then

MessageBox.Show(“el botón seleccionado es el “ & boton.name)Exit For

End IfEnd If

NextEnd Sub

APLICACIONES WINDOWS CON VB.NET

126

Page 213: Módulo_7_Aplicaciones Windows con VB

En él vemos que recorremos todos los controles que están en el formulario, averiguamos cual es del tipoRadioButton, y si este será activado, en el momento en que uno de ellos esté ya nos salimos de la repetitivapuesto que los demás botones seguro que están desactivados porque son alternativos.

Si hay botones de opción que están dentro de un control de caja de grupo (GroupBox) el código anterior notrabajaría con los botones del control caja de grupo.

Barra desplazamiento Horizontal y Vertical

Son unos controles que permiten al usuario desplazarse por una determinada zona o bien elegir un númerodeterminado de una manera visual, o incluso hacer simulación de aparatos del mundo real.

En este control se distinguen varias partes:

Dos botones en los extremos que posen flechas, cada vez que se pulsa estos botones se mueve el botóncentral, llamado ascensor, hacia la derecha o hacia la izquierda.

Es posible arrastrar el ascensor hacia una posición determinada.

Incluso es posible pinchar a la izquierda o a la derecha del ascensor, esto permite que los movimientos delmismo sean hacia la izquierda o hacia la derecha en un número especifico de unidades.

Normalmente el ascensor nos muestra una posición que corresponde con un valor determinado, es decir si através de las barras de desplazamiento el usuario puede elegir un numero entre el 0 y el 1000, si sitúa elascensor justo en el centro de la barra es como si hubiese elegido el 500.

APLICACIONES WINDOWS CON VB.NET

127

Page 214: Módulo_7_Aplicaciones Windows con VB

Es posible determinar el valor tanto para el desplazamiento largo, el que se consigue pinchando a la izquierdao derecha del ascensor, así como para el desplazamiento corto, el que se consigue pinchando a los botonesde la flechas, a un valor determinado.

Voy a poner una lista que muestra las posibilidades de este control.

PROPIEDADES PÚBLICAS

AccessibilityObject Obtiene AccessibleObject asignado al control.

AccessibleDefaultActionDescription Lee o escribe la descripción de la acción predeterminada del control que las aplicaciones cliente deaccesibilidad utilizan.

AccessibleDescription Lee o escribe la descripción del control que las aplicaciones cliente de accesibilidad utilizan.

AccessibleName Lee o escribe el nombre del control que las aplicaciones cliente de accesibilidad utilizan.

AccessibleRole Lee o escribe la función accesible del control.

AllowDrop Lee o escribe un valor que indica si el control puede aceptar los datos que el usuario arrastra al mismo.

Anchor Lee o escribe los bordes del control que se acoplan a los bordes de su contenedor.

BackColor Lee o escribe el color de fondo del control.

BackgroundImage Lee o escribe la imagen de fondo que se muestra en el control.

BindingContext Lee o escribe BindingContext del control.

APLICACIONES WINDOWS CON VB.NET

128

Page 215: Módulo_7_Aplicaciones Windows con VB

Bottom Obtiene la distancia que existe entre el borde inferior del control y el borde superior del área cliente de sucontenedor.

Bounds Lee o escribe el tamaño y la ubicación del control.

CanFocus Obtiene un valor que indica si el control puede recibir el foco.

CanSelect Obtiene un valor que indica si el control se puede seleccionar.

Capture Lee o escribe un valor que indica si el control ha capturado el mouse (ratón).

CausesValidation Lee o escribe un valor que indica si el control hace que se realice una validación de todos los controles querequieren validación cuando reciben el foco.

ClientRectangle Obtiene el rectángulo que representa el área cliente del control.

ClientSize Lee o escribe el alto y el ancho del área cliente del control.

CompanyName Obtiene el nombre de la compañía o del creador de la aplicación que contiene el control.

ContainerObtiene IContainer que contiene Component.

ContainsFocus Obtiene un valor que indica si el control, o uno de sus controles secundarios, tiene el foco de entrada en laactualidad.

ContextMenu Lee o escribe el menú contextual asociado al control.

APLICACIONES WINDOWS CON VB.NET

129

Page 216: Módulo_7_Aplicaciones Windows con VB

Controls Obtiene la colección de controles que contiene el control.

Created Obtiene un valor que indica si se ha creado el control.

Cursor Lee o escribe el cursor que se muestra cuando el puntero del mouse se sitúa sobre el control.

DataBindings Obtiene los enlaces de datos del control.

DisplayRectangle Obtiene el rectángulo que representa el área de presentación del control.

Disposing Obtiene un valor que indica si el control está en proceso de eliminación.

Dock Lee o escribe el borde del contenedor principal al que está acoplado un control.

Enabled Lee o escribe un valor que indica si el control puede responder a la interacción del usuario.

Focused Obtiene un valor que indica si el control tiene el foco de entrada.

Font Lee o escribe la fuente del texto que muestra el control.

ForeColor Lee o escribe el color de primer plano del control.

Handle Obtiene el identificador de ventana al que está enlazado el control.

HasChildren Obtiene un valor que indica si el control contiene uno o más controles secundarios.

APLICACIONES WINDOWS CON VB.NET

130

Page 217: Módulo_7_Aplicaciones Windows con VB

Height Lee o escribe el alto del control.

ImeModeLee o escribe el modo del Editor de métodos de entrada (IME) que este control admite.

InvokeRequired Obtiene un valor que indica si el llamador debe llamar a un método de invocación cuando realiza llamadasa métodos del control porque el llamador se encuentra en un subproceso distinto al del control donde se creó.

IsAccessible Lee o escribe un valor que indica si el control es visible para las aplicaciones de accesibilidad.

IsDisposed Obtiene un valor que indica si el control se ha eliminado.

IsHandleCreated Obtiene un valor que indica si el control tiene un identificador asociado.

LargeChangeLee o escribe un valor que se suma o resta de la propiedad Value cuando el cuadro de desplazamiento semueve una distancia grande.

Left Lee o escribe la coordenada x del borde izquierdo de un control, en píxeles.

Location Lee o escribe las coordenadas de la esquina superior izquierda del control en relación con la esquina superiorizquierda de su contenedor.

MaximumLee o escribe el límite superior de los valores del intervalo de desplazamiento.

MinimumLee o escribe el límite inferior de los valores del intervalo de desplazamiento.

Name Lee o escribe el nombre del control.

APLICACIONES WINDOWS CON VB.NET

131

Page 218: Módulo_7_Aplicaciones Windows con VB

Parent Lee o escribe el contenedor principal del control.

ProductName Obtiene el nombre de producto del ensamblado que contiene el control.

ProductVersion Obtiene la versión del ensamblado que contiene el control.

RecreatingHandle Obtiene un valor que indica si el control está volviendo a crear su identificador en la actualidad.

Region Lee o escribe la región de ventana asociada al control.

Right Obtiene la distancia entre el borde derecho del control y el borde izquierdo de su contenedor.

RightToLeft Lee o escribe un valor que indica si los elementos del control se alinean para admitir configuracionesregionales utilizando fuentes de derecha a izquierda.

Site Lee o escribe el sitio del control.

Size Lee o escribe el alto y el ancho del control.

SmallChange Lee o escribe el valor que se suma o resta de la propiedad Value cuando el cuadro de desplazamiento semueve una distancia pequeña.

TabIndex Lee o escribe el orden de tabulación del control en su contenedor.

TabStop Lee o escribe un valor que indica si el usuario puede dar el foco a este control mediante la tecla TAB.

APLICACIONES WINDOWS CON VB.NET

132

Page 219: Módulo_7_Aplicaciones Windows con VB

Tag Lee o escribe el objeto que contiene datos sobre el control.

Text Lee o escribe el texto asociado al control.

Top Lee o escribe la coordenada y del borde superior del control, en píxeles.

TopLevelControl Obtiene el control principal que no es secundario de ningún otro control de formularios Windows Forms.Normalmente, se trata del Form más externo en el que está contenido el control.

ValueLee o escribe un valor numérico que representa la posición actual del cuadro de desplazamiento en el controlde barra de desplazamiento.

Visible Lee o escribe un valor que indica si se muestra el control.

Width Lee o escribe el ancho del control.

MÉTODOS PÚBLICOS

BeginInvoke Ejecuta un delegado de forma asincrónica en el subproceso donde se creó el identificador subyacente delcontrol.

BringToFront Coloca el control al principio del orden Z.

Contains Obtiene un valor que indica si el control especificado es un control secundario del control.

CreateControl Obliga a que se cree el control, incluidos el identificador y los controles secundarios.

APLICACIONES WINDOWS CON VB.NET

133

Page 220: Módulo_7_Aplicaciones Windows con VB

CreateGraphics Crea el objeto Graphics para el control.

CreateObjRefCrea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado paracomunicarse con un objeto remoto.

DisposeLibera los recursos utilizados por Component.

DoDragDrop Inicia una operación de arrastrar y colocar.

EndInvoke Recupera el valor devuelto por la operación asíncrona representada por el objeto IAsyncResult que se pasa.

EqualsDetermina si dos instancias de Object son iguales.

FindForm Recupera el formulario en el que se encuentra el control.

Focus Establece el foco de entrada en el control.

GetChildAtPoint Recupera el control secundario ubicado en las coordenadas especificadas.

GetContainerControl Devuelve el siguiente ContainerControl (en sentido ascendente) de la cadena de controles principales delcontrol.

GetHashCode Sirve como función hash para un tipo concreto, apropiado para su utilización en algoritmos de hash yestructuras de datos como las tablas hash.

GetLifetimeServiceRecupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

APLICACIONES WINDOWS CON VB.NET

134

Page 221: Módulo_7_Aplicaciones Windows con VB

GetNextControl Recupera el siguiente control, hacia delante o hacia atrás, en el orden de tabulación de controlessecundarios.

GetTypeObtiene el objeto Type de la instancia actual.

Hide Oculta el control al usuario.

InitializeLifetimeService Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

Invalidate Invalida una región específica del control y hace que se envíe un mensaje de dibujo al control.

Invoke Ejecuta un delegado en el subproceso que posee el identificador de ventana subyacente del control.

PerformLayout Obliga al control a aplicar la lógica de diseño a los controles secundarios.

PointToClient Calcula la ubicación del punto especificado de la pantalla, en coordenadas de cliente.

PointToScreen Calcula la ubicación del punto especificado de cliente en coordenadas de pantalla.

PreProcessMessage Preprocesa los mensajes de entrada en el bucle de mensajes antes de enviarlos.

RectangleToClient Calcula el tamaño y la ubicación del rectángulo de pantalla especificado, en coordenadas de cliente.

RectangleToScreen Calcula el tamaño y la ubicación del rectángulo de cliente especificado, en coordenadas de pantalla.

Refresh Obliga al control a invalidar su área cliente y, acto seguido, obliga a que vuelva a dibujarse el control y suscontroles secundarios.

APLICACIONES WINDOWS CON VB.NET

135

Page 222: Módulo_7_Aplicaciones Windows con VB

ResetBackColor Restablece el valor predeterminado de la propiedad BackColor.

ResetBindings Restablece el valor predeterminado de la propiedad DataBindings.

ResetCursor Restablece el valor predeterminado de la propiedad Cursor.

ResetFont Restablece el valor predeterminado de la propiedad Font.

ResetForeColor Restablece el valor predeterminado de la propiedad ForeColor.

ResetImeMode Restablece el valor predeterminado de la propiedad ImeMode.

ResetRightToLeft Restablece el valor predeterminado de la propiedad RightToLeft.

ResetText Restablece el valor predeterminado de la propiedad Text.

ResumeLayout Reanuda la lógica de diseño habitual.

Scale Ajusta la escala del control y de todos los controles secundarios.

Select Activa un control.

SelectNextControl Activa el siguiente control.

SendToBack Envía el control al final del orden Z. para superponer controles.

APLICACIONES WINDOWS CON VB.NET

136

Page 223: Módulo_7_Aplicaciones Windows con VB

SetBounds Establece los límites del control.

Show Muestra el control al usuario.

SuspendLayout Suspende temporalmente la lógica de diseño del control.

ToString (se hereda de Object)Devuelve un objeto String que representa al objeto Object actual.

Update Hace que el control vuelva a dibujar las regiones invalidadas con su área cliente.

EVENTOS PÚBLICOS

BackColorChanged Se produce cuando el valor de la propiedad BackColor cambia.

BackgroundImageChanged Se produce cuando el valor de la propiedad BackgroundImage cambia.

BindingContextChanged Se produce cuando el valor de la propiedad BindingContext cambia.

CausesValidationChanged Se produce cuando el valor de la propiedad CausesValidation cambia.

ChangeUICues Se produce cuando cambian las guías de la interfaz de usuario para el foco o el teclado.

Click Se produce cuando se hace clic en el control.

ContextMenuChanged Se produce cuando el valor de la propiedad ContextMenu cambia.

APLICACIONES WINDOWS CON VB.NET

137

Page 224: Módulo_7_Aplicaciones Windows con VB

ControlAdded Se produce cuando se agrega un nuevo control a Control.ControlCollection.

ControlRemoved Se produce cuando se quita un control de Control.ControlCollection.

CursorChanged Se produce cuando el valor de la propiedad Cursor cambia.

DisposedAgrega un controlador de eventos para escuchar al evento Disposed en el componente.

DockChanged Se produce cuando el valor de la propiedad Dock cambia.

DoubleClick Se produce cuando se hace doble clic en el control.

DragDrop Se produce cuando termina una operación de arrastrar y colocar.

DragEnter Se produce cuando se arrastra un objeto dentro de los límites del control.

DragLeave Se produce cuando se arrastra un objeto fuera de los límites del control.

DragOver Se produce cuando se arrastra un objeto sobre los límites del control.

EnabledChanged Se produce cuando cambia el valor de la propiedad Enabled.

Enter Se produce cuando se entra en el control.

FontChanged Se produce cuando cambia el valor de la propiedad Font.

APLICACIONES WINDOWS CON VB.NET

138

Page 225: Módulo_7_Aplicaciones Windows con VB

ForeColorChanged Se produce cuando cambia el valor de la propiedad ForeColor.

GiveFeedback Se produce durante una operación de arrastre.

GotFocus Se produce cuando el control recibe el foco.

HandleCreated Se produce cuando se crea un identificador para el control.

HandleDestroyed Se produce cuando el identificador del control está en proceso de eliminación.

HelpRequested Se produce cuando el usuario solicita ayuda para un control.

ImeModeChanged Se produce cuando cambia la propiedad ImeMode.

Invalidated Se produce cuando es necesario volver a dibujar un control.

KeyDown Se produce cuando se presiona una tecla mientras el control tiene el foco.

KeyPress Se produce cuando se presiona una tecla mientras el control tiene el foco.

KeyUp Se produce cuando se suelta una tecla mientras el control tiene el foco.

Layout Se produce cuando un control debe volver a colocar sus controles secundarios.

Leave Se produce cuando el foco de entrada deja el control.

APLICACIONES WINDOWS CON VB.NET

139

Page 226: Módulo_7_Aplicaciones Windows con VB

LocationChanged Se produce cuando cambia el valor de la propiedad Location.

LostFocus Se produce cuando el control pierde el foco.

MouseDown Se produce cuando el puntero del ratón está sobre el control y se presiona un botón del mouse.

MouseEnter Se produce cuando el puntero del ratón entra en el control.

MouseHover Se produce cuando el puntero del ratón se sitúa encima del control.

MouseLeave Se produce cuando el puntero del ratón deja el control.

MouseMove Se produce cuando el puntero del ratón se mueve sobre el control.

MouseUp Se produce cuando el puntero del ratón está encima del control y se suelta un botón del mouse.

MouseWheel Se produce cuando la rueda del ratón se mueve mientras el control tiene el foco.

Move Se produce cuando se mueve el control.

Paint Se produce cuando vuelve a dibujarse el control.

ParentChanged Se produce cuando cambia el valor de la propiedad Parent.

QueryAccessibilityHelp Se produce cuando AccessibleObject proporciona ayuda para aplicaciones de accesibilidad.

APLICACIONES WINDOWS CON VB.NET

140

Page 227: Módulo_7_Aplicaciones Windows con VB

QueryContinueDrag Se produce durante una operación de arrastrar y colocar y permite al origen de arrastre determinar si laoperación de arrastrar y colocar tiene que cancelarse.

Resize Se produce cuando se cambia el tamaño del control.

RightToLeftChanged Se produce cuando cambia el valor de la propiedad RightToLeft.

ScrollSe produce cuando el cuadro de desplazamiento se ha movido por una acción del mouse (ratón) o del teclado.

SizeChanged Se produce cuando cambia el valor de la propiedad Size.

StyleChanged Se produce cuando cambia el estilo del control.

SystemColorsChanged Se produce cuando se modifican los colores del sistema.

TabIndexChanged Se produce cuando cambia el valor de la propiedad TabIndex.

TabStopChanged Se produce cuando cambia el valor de la propiedad TabStop.

TextChanged Se produce cuando cambia el valor de la propiedad Text.

Validated Se produce cuando finaliza la validación del control.

Validating Se produce cuando el control se está validando.

ValueChanged Se produce cuando la propiedad Value ha cambiado, bien mediante un evento Scroll o medianteprogramación.

APLICACIONES WINDOWS CON VB.NET

141

Page 228: Módulo_7_Aplicaciones Windows con VB

VisibleChanged Se produce cuando cambia el valor de la propiedad Visible.

Vamos a ver ejemplos que trabajan con las barras de desplazamiento.

Private Sub dialogo2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

HScrollBar1.Maximum = 255HScrollBar1.Minimum = 0HScrollBar1.LargeChange = 10HScrollBar1.SmallChange = 1

HScrollBar2.Maximum = 255HScrollBar2.Minimum = 0HScrollBar2.LargeChange = 10HScrollBar2.SmallChange = 1

HScrollBar3.Maximum = 255HScrollBar3.Minimum = 0HScrollBar3.LargeChange = 10HScrollBar3.SmallChange = 1

End Sub

Se establecen de forma dinámica propiedades para tres barras de desplazamiento horizontal que seencuentran en mi formulario.

En concreto el valor máximo y el mínimo que pueden alcanzar, así como el cambio de valor endesplazamientos largos (cuando se pulsa a la barra de desplazamiento) y cortos (cuando se pulsa a losbotones).

Private Sub HScrollBar1_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles HScrollBar1.Scroll

Label1.Text = HScrollBar1.ValueROJO = HScrollBar1.ValueMe.BackColor = ColorTranslator.FromWin32(RGB(ROJO, VERDE, AZUL))

End Sub

APLICACIONES WINDOWS CON VB.NET

142

Page 229: Módulo_7_Aplicaciones Windows con VB

En este procedimiento de evento, como en los siguientes lo que se establece es que se escriba en diferentesetiquetas el valor que en este momento tiene cada barra de desplazamiento horizontal, después se asignaeste valor a variables publicas que definen los tres colores básicos.

Finalmente se asigna al color del formulario lo que devuelve la función RGB, que es un entero a un color deltipo adecuado.

La función RGB permite establecer una combinación de los tres colores básicos, rojo, verde y azul, paracomponer un color final.

Private Sub HScrollBar2_Scroll(ByVal sender As Object, ByVal e As System.Windows.Forms.ScrollEventArgs)Handles HScrollBar2.Scroll

Label2.Text = HScrollBar2.ValueVERDE = HScrollBar2.ValueMe.BackColor = ColorTranslator.FromWin32(RGB(ROJO, VERDE, AZUL))

End Sub

Private Sub HScrollBar3_Scroll(ByVal sender As Object, ByVal e As System.Windows.Forms.ScrollEventArgs)Handles HScrollBar3.Scroll

Label3.Text = HScrollBar3.ValueAZUL = HScrollBar3.ValueMe.BackColor = ColorTranslator.FromWin32(RGB(ROJO, VERDE, AZUL))

End Sub

PictureBox

APLICACIONES WINDOWS CON VB.NET

143

Page 230: Módulo_7_Aplicaciones Windows con VB

Es un control que permite visualizar en su interior imágenes de multiples formatos gráficos.

Veamos una lista de sus posibilidades.

PROPIEDADES PÚBLICAS

AccessibilityObject Obtiene AccessibleObject asignado al control.

AccessibleDefaultActionDescription Lee o escribe la descripción de la acción predeterminada del control que las aplicaciones cliente deaccesibilidad utilizan.

AccessibleDescription Lee o escribe la descripción del control que las aplicaciones cliente de accesibilidad utilizan.

AccessibleName Lee o escribe el nombre del control que las aplicaciones cliente de accesibilidad utilizan.

AccessibleRole Lee o escribe la función accesible del control.

Anchor Lee o escribe los bordes del control que se acoplan a los bordes de su contenedor.

BackColor Lee o escribe el color de fondo del control.

BackgroundImage Lee o escribe la imagen de fondo que se muestra en el control.

BindingContext Lee o escribe BindingContext del control.

BorderStyleIndica el estilo del borde para el control.

Bottom Obtiene la distancia que existe entre el borde inferior del control y el borde superior del área cliente de sucontenedor.

APLICACIONES WINDOWS CON VB.NET

144

Page 231: Módulo_7_Aplicaciones Windows con VB

Bounds Lee o escribe el tamaño y la ubicación del control.

CanFocus Obtiene un valor que indica si el control puede recibir el foco.

CanSelect Obtiene un valor que indica si el control se puede seleccionar.

Capture Lee o escribe un valor que indica si el control ha capturado el mouse (ratón).

ClientRectangle Obtiene el rectángulo que representa el área cliente del control.

ClientSize Lee o escribe el alto y el ancho del área cliente del control.

CompanyName Obtiene el nombre de la compañía o del creador de la aplicación que contiene el control.

ContainerObtiene IContainer que contiene Component.

ContainsFocus Obtiene un valor que indica si el control, o uno de sus controles secundarios, tiene el foco de entrada en laactualidad.

ContextMenu Lee o escribe el menú contextual asociado al control.

Controls Obtiene la colección de controles que contiene el control.

Created Obtiene un valor que indica si se ha creado el control.

Cursor Lee o escribe el cursor que se muestra cuando el puntero del mouse se sitúa sobre el control.

APLICACIONES WINDOWS CON VB.NET

145

Page 232: Módulo_7_Aplicaciones Windows con VB

DataBindings Obtiene los enlaces de datos del control.

DisplayRectangle Obtiene el rectángulo que representa el área de presentación del control.

Disposing Obtiene un valor que indica si el control está en proceso de eliminación.

Dock Lee o escribe el borde del contenedor principal al que está acoplado un control.

Enabled Lee o escribe un valor que indica si el control puede responder a la interacción del usuario.

Focused Obtiene un valor que indica si el control tiene el foco de entrada.

Handle Obtiene el identificador de ventana al que está enlazado el control.

HasChildren Obtiene un valor que indica si el control contiene uno o más controles secundarios.

Height Lee o escribe el alto del control.

ImageLee o escribe la imagen que muestra PictureBox.

ImeModeLee o escribe el modo del Editor de métodos de entrada (IME) que este control admite.

InvokeRequired Obtiene un valor que indica si el llamador debe llamar a un método de invocación cuando realiza llamadasa métodos del control porque el llamador se encuentra en un subproceso distinto al del control donde se creó.

IsAccessible Lee o escribe un valor que indica si el control es visible para las aplicaciones de accesibilidad.

APLICACIONES WINDOWS CON VB.NET

146

Page 233: Módulo_7_Aplicaciones Windows con VB

IsDisposed Obtiene un valor que indica si el control se ha eliminado.

IsHandleCreated Obtiene un valor que indica si el control tiene un identificador asociado.

Left Lee o escribe la coordenada x del borde izquierdo de un control, en píxeles.

Location Lee o escribe las coordenadas de la esquina superior izquierda del control en relación con la esquina superiorizquierda de su contenedor.

Name Lee o escribe el nombre del control.

Parent Lee o escribe el contenedor principal del control.

ProductName Obtiene el nombre de producto del ensamblado que contiene el control.

ProductVersion Obtiene la versión del ensamblado que contiene el control.

RecreatingHandle Obtiene un valor que indica si el control está volviendo a crear su identificador en la actualidad.

Region Lee o escribe la región de ventana asociada al control.

Right Obtiene la distancia entre el borde derecho del control y el borde izquierdo de su contenedor.

Site Lee o escribe el sitio del control.

Size Lee o escribe el alto y el ancho del control.

APLICACIONES WINDOWS CON VB.NET

147

Page 234: Módulo_7_Aplicaciones Windows con VB

SizeModeindica cómo se muestra la imagen.

Tag Lee o escribe el objeto que contiene datos sobre el control.

Top Lee o escribe la coordenada y del borde superior del control, en píxeles.

TopLevelControl Obtiene el control principal que no es secundario de ningún otro control de formularios Windows Forms.Normalmente, se trata del Form más externo en el que está contenido el control.

Visible Lee o escribe un valor que indica si se muestra el control.

Width Lee o escribe el ancho del control.

MÉTODOS PÚBLICOS

BeginInvoke Ejecuta un delegado de forma asincrónica en el subproceso donde se creó el identificador subyacente delcontrol.

BringToFront Coloca el control al principio del orden Z.

Contains Obtiene un valor que indica si el control especificado es un control secundario del control.

CreateControl Obliga a que se cree el control, incluidos el identificador y los controles secundarios.

CreateGraphics Crea el objeto Graphics para el control.

APLICACIONES WINDOWS CON VB.NET

148

Page 235: Módulo_7_Aplicaciones Windows con VB

CreateObjRefCrea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado paracomunicarse con un objeto remoto.

DisposeLibera los recursos utilizados por Component.

DoDragDrop Inicia una operación de arrastrar y colocar.

EndInvoke Recupera el valor devuelto por la operación asíncrona representada por el objeto IAsyncResult que se pasa.

EqualsDetermina si dos instancias de Object son iguales.

FindForm Recupera el formulario en el que se encuentra el control.

Focus Establece el foco de entrada en el control.

GetChildAtPoint Recupera el control secundario ubicado en las coordenadas especificadas.

GetContainerControl Devuelve el siguiente ContainerControl (en sentido ascendente) de la cadena de controles principales delcontrol.

GetHashCodeSirve como función hash para un tipo concreto, apropiado para su utilización en algoritmos de hash yestructuras de datos como las tablas hash.

GetLifetimeServiceRecupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

GetNextControl Recupera el siguiente control, hacia delante o hacia atrás, en el orden de tabulación de controlessecundarios.

APLICACIONES WINDOWS CON VB.NET

149

Page 236: Módulo_7_Aplicaciones Windows con VB

GetTypeObtiene el objeto Type de la instancia actual.

Hide Oculta el control al usuario.

InitializeLifetimeService Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

Invalidate Invalida una región específica del control y hace que se envíe un mensaje de dibujo al control.

Invoke Ejecuta un delegado en el subproceso que posee el identificador de ventana subyacente del control.

PerformLayout Obliga al control a aplicar la lógica de diseño a los controles secundarios.

PointToClient Calcula la ubicación del punto especificado de la pantalla, en coordenadas de cliente.

PointToScreen Calcula la ubicación del punto especificado de cliente en coordenadas de pantalla.

PreProcessMessage Preprocesa los mensajes de entrada en el bucle de mensajes antes de enviarlos.

RectangleToClient Calcula el tamaño y la ubicación del rectángulo de pantalla especificado, en coordenadas de cliente.

RectangleToScreen Calcula el tamaño y la ubicación del rectángulo de cliente especificado, en coordenadas de pantalla.

Refresh Obliga al control a invalidar su área cliente y, acto seguido, obliga a que vuelva a dibujarse el control y suscontroles secundarios.

ResetBackColor Restablece el valor predeterminado de la propiedad BackColor.

APLICACIONES WINDOWS CON VB.NET

150

Page 237: Módulo_7_Aplicaciones Windows con VB

ResetBindings Restablece el valor predeterminado de la propiedad DataBindings.

ResetCursor Restablece el valor predeterminado de la propiedad Cursor.

ResetFont Restablece el valor predeterminado de la propiedad Font.

ResetForeColor Restablece el valor predeterminado de la propiedad ForeColor.

ResetImeMode Restablece el valor predeterminado de la propiedad ImeMode.

ResetRightToLeft Restablece el valor predeterminado de la propiedad RightToLeft.

ResetText Restablece el valor predeterminado de la propiedad Text.

ResumeLayout Reanuda la lógica de diseño habitual.

Scale Ajusta la escala del control y de todos los controles secundarios.

Select Activa un control.

SelectNextControl Activa el siguiente control.

SendToBack Envía el control al final del orden Z.

SetBounds Establece los límites del control.

APLICACIONES WINDOWS CON VB.NET

151

Page 238: Módulo_7_Aplicaciones Windows con VB

Show Muestra el control al usuario.

SuspendLayout Suspende temporalmente la lógica de diseño del control.

ToStringVea Object.ToString.

Update Hace que el control vuelva a dibujar las regiones invalidadas con su área cliente.

EVENTOS PÚBLICOS

BackColorChanged Se produce cuando el valor de la propiedad BackColor cambia.

BackgroundImageChanged Se produce cuando el valor de la propiedad BackgroundImage cambia.

BindingContextChanged Se produce cuando el valor de la propiedad BindingContext cambia.

CausesValidationChanged Se produce cuando el valor de la propiedad CausesValidation cambia.

ChangeUICues Se produce cuando cambian las guías de la interfaz de usuario para el foco o el teclado.

Click Se produce cuando se hace clic en el control.

ContextMenuChanged Se produce cuando el valor de la propiedad ContextMenu cambia.

ControlAdded Se produce cuando se agrega un nuevo control a Control.ControlCollection.

APLICACIONES WINDOWS CON VB.NET

152

Page 239: Módulo_7_Aplicaciones Windows con VB

ControlRemoved Se produce cuando se quita un control de Control.ControlCollection.

CursorChanged Se produce cuando el valor de la propiedad Cursor cambia.

DisposedAgrega un controlador de eventos para escuchar al evento Disposed en el componente.

DockChanged Se produce cuando el valor de la propiedad Dock cambia.

DoubleClick Se produce cuando se hace doble clic en el control.

DragDrop Se produce cuando termina una operación de arrastrar y colocar.

DragEnter Se produce cuando se arrastra un objeto dentro de los límites del control.

DragLeave Se produce cuando se arrastra un objeto fuera de los límites del control.

DragOver Se produce cuando se arrastra un objeto sobre los límites del control.

EnabledChanged Se produce cuando cambia el valor de la propiedad Enabled.

FontChanged Se produce cuando cambia el valor de la propiedad Font.

ForeColorChanged Se produce cuando cambia el valor de la propiedad ForeColor.

GiveFeedback Se produce durante una operación de arrastre.

APLICACIONES WINDOWS CON VB.NET

153

Page 240: Módulo_7_Aplicaciones Windows con VB

GotFocus Se produce cuando el control recibe el foco.

HandleCreated Se produce cuando se crea un identificador para el control.

HandleDestroyed Se produce cuando el identificador del control está en proceso de eliminación.

HelpRequested Se produce cuando el usuario solicita ayuda para un control.

ImeModeChanged Se produce cuando cambia la propiedad ImeMode.

Invalidated Se produce cuando es necesario volver a dibujar un control.

Layout Se produce cuando un control debe volver a colocar sus controles secundarios.

LocationChanged Se produce cuando cambia el valor de la propiedad Location.

LostFocus Se produce cuando el control pierde el foco.

MouseDown Se produce cuando el puntero del ratón está sobre el control y se presiona un botón del mouse.

MouseEnter Se produce cuando el puntero del ratón entra en el control.

MouseHover Se produce cuando el puntero del ratón se sitúa encima del control.

MouseLeave Se produce cuando el puntero del ratón deja el control.

APLICACIONES WINDOWS CON VB.NET

154

Page 241: Módulo_7_Aplicaciones Windows con VB

MouseMove Se produce cuando el puntero del ratón se mueve sobre el control.

MouseUp Se produce cuando el puntero del ratón está encima del control y se suelta un botón del mouse.

MouseWheel Se produce cuando la rueda del ratón se mueve mientras el control tiene el foco.

Move Se produce cuando se mueve el control.

Paint Se produce cuando vuelve a dibujarse el control.

ParentChanged Se produce cuando cambia el valor de la propiedad Parent.

QueryAccessibilityHelp Se produce cuando AccessibleObject proporciona ayuda para aplicaciones de accesibilidad.

QueryContinueDrag Se produce durante una operación de arrastrar y colocar y permite al origen de arrastre determinar si laoperación de arrastrar y colocar tiene que cancelarse.

Resize Se produce cuando se cambia el tamaño del control.

RightToLeftChanged Se produce cuando cambia el valor de la propiedad RightToLeft.

SizeChanged Se produce cuando cambia el valor de la propiedad Size.

SizeModeChangedSe produce cuando SizeMode cambia.

StyleChanged Se produce cuando cambia el estilo del control.

APLICACIONES WINDOWS CON VB.NET

155

Page 242: Módulo_7_Aplicaciones Windows con VB

SystemColorsChanged Se produce cuando se modifican los colores del sistema.

TabIndexChanged Se produce cuando cambia el valor de la propiedad TabIndex.

TabStopChanged Se produce cuando cambia el valor de la propiedad TabStop.

TextChanged Se produce cuando cambia el valor de la propiedad Text.

Validated Se produce cuando finaliza la validación del control.

Validating Se produce cuando el control se está validando.

VisibleChanged Se produce cuando cambia el valor de la propiedad Visible.

Asociar una imagen dinámicamente.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

PictureBox1.BackgroundImage = System.Drawing.Bitmap.FromFile(“c:\dibujo1.bmp”)End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button2.Click

PictureBox1.Image = Bitmap.FromFile(“c:\dibujo2.bmp”)End Sub

En el ejemplo en el segundo procedimiento de evento se indica el fichero bitmap que se desea leer pero nose especifica el espacio de nombres System.Drawing, dado que el propio VB lo importa en sus referenciasinternas de espacios con nombre por defecto.

APLICACIONES WINDOWS CON VB.NET

156

Page 243: Módulo_7_Aplicaciones Windows con VB

Eliminar una imagen dinámicamente

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

PictureBox1.Image = NothingPictureBox1.BackgroundImage = Nothing

End Sub

En este ejemplo se observa que se eliminan tanto la imagen de fondo como la de primer plano que puedetener un Picturebox.

Girar una imagen

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

PictureBox1.Image.RotateFlip(RotateFlipType.Rotate90FlipY)PictureBox1.Refresh()

End Sub

En este código se va a rotar la imagen 90 grados en su eje Y.

GroupBox

APLICACIONES WINDOWS CON VB.NET

157

Page 244: Módulo_7_Aplicaciones Windows con VB

Es un control que sirve exclusivamente para contener otros controles, es decir es una manera de agruparcontroles por alguna característica común y facilitarle el trabajo al usuario.

Vamos a ver sus posibilidades.

PROPIEDADES PÚBLICAS

AccessibilityObject Obtiene AccessibleObject asignado al control.

AccessibleDefaultActionDescription Lee o escribe la descripción de la acción predeterminada del control que las aplicaciones cliente deaccesibilidad utilizan.

AccessibleDescription Lee o escribe la descripción del control que las aplicaciones cliente de accesibilidad utilizan.

AccessibleName Lee o escribe el nombre del control que las aplicaciones cliente de accesibilidad utilizan.

AccessibleRole Lee o escribe la función accesible del control.

AllowDropVea Control.AllowDrop.

Anchor Lee o escribe los bordes del control que se acoplan a los bordes de su contenedor.

BackColor Lee o escribe el color de fondo del control.

BackgroundImage Lee o escribe la imagen de fondo que se muestra en el control.

BindingContext Lee o escribe BindingContext del control.

APLICACIONES WINDOWS CON VB.NET

158

Page 245: Módulo_7_Aplicaciones Windows con VB

Bottom Obtiene la distancia que existe entre el borde inferior del control y el borde superior del área cliente de sucontenedor.

Bounds Lee o escribe el tamaño y la ubicación del control.

CanFocus Obtiene un valor que indica si el control puede recibir el foco.

CanSelect Obtiene un valor que indica si el control se puede seleccionar.

Capture Lee o escribe un valor que indica si el control ha capturado el mouse (ratón).

CausesValidation Lee o escribe un valor que indica si el control hace que se realice una validación de todos los controles querequieren validación cuando reciben el foco.

ClientRectangle Obtiene el rectángulo que representa el área cliente del control.

ClientSize Lee o escribe el alto y el ancho del área cliente del control.

CompanyName Obtiene el nombre de la compañía o del creador de la aplicación que contiene el control.

Container Obtiene IContainer que contiene Component.

ContainsFocus Obtiene un valor que indica si el control, o uno de sus controles secundarios, tiene el foco de entrada en laactualidad.

ContextMenu Lee o escribe el menú contextual asociado al control.

APLICACIONES WINDOWS CON VB.NET

159

Page 246: Módulo_7_Aplicaciones Windows con VB

Controls Obtiene la colección de controles que contiene el control.

Created Obtiene un valor que indica si se ha creado el control.

Cursor Lee o escribe el cursor que se muestra cuando el puntero del mouse se sitúa sobre el control.

DataBindings Obtiene los enlaces de datos del control.

DisplayRectangleVea Control.DisplayRectangle.

Disposing Obtiene un valor que indica si el control está en proceso de eliminación.

Dock Lee o escribe el borde del contenedor principal al que está acoplado un control.

Enabled Lee o escribe un valor que indica si el control puede responder a la interacción del usuario.

FlatStyleLee o escribe la apariencia de estilo plano del control de cuadro de grupo.

Focused Obtiene un valor que indica si el control tiene el foco de entrada.

Font Lee o escribe la fuente del texto que muestra el control.

ForeColor Lee o escribe el color de primer plano del control.

Handle Obtiene el identificador de ventana al que está enlazado el control.

APLICACIONES WINDOWS CON VB.NET

160

Page 247: Módulo_7_Aplicaciones Windows con VB

HasChildren Obtiene un valor que indica si el control contiene uno o más controles secundarios.

Height Lee o escribe el alto del control.

ImeMode Lee o escribe el modo de Editor de métodos de entrada (IME) del control.

InvokeRequired Obtiene un valor que indica si el llamador debe llamar a un método de invocación cuando realiza llamadasa métodos del control porque el llamador se encuentra en un subproceso distinto al del control donde se creó.

IsAccessible Lee o escribe un valor que indica si el control es visible para las aplicaciones de accesibilidad.

IsDisposed Obtiene un valor que indica si el control se ha eliminado.

IsHandleCreated Obtiene un valor que indica si el control tiene un identificador asociado.

Left Lee o escribe la coordenada x del borde izquierdo de un control, en píxeles.

Location Lee o escribe las coordenadas de la esquina superior izquierda del control en relación con la esquina superiorizquierda de su contenedor.

Name Lee o escribe el nombre del control.

Parent Lee o escribe el contenedor principal del control.

ProductName Obtiene el nombre de producto del ensamblado que contiene el control.

APLICACIONES WINDOWS CON VB.NET

161

Page 248: Módulo_7_Aplicaciones Windows con VB

ProductVersion Obtiene la versión del ensamblado que contiene el control.

RecreatingHandle Obtiene un valor que indica si el control está volviendo a crear su identificador en la actualidad.

Region Lee o escribe la región de ventana asociada al control.

Right Obtiene la distancia entre el borde derecho del control y el borde izquierdo de su contenedor.

RightToLeft Lee o escribe un valor que indica si los elementos del control se alinean para admitir configuracionesregionales utilizando fuentes de derecha a izquierda.

Site Lee o escribe el sitio del control.

Size Lee o escribe el alto y el ancho del control.

TabIndex Lee o escribe el orden de tabulación del control en su contenedor.

Tag Lee o escribe el objeto que contiene datos sobre el control.

TextVea Control.Text.

Top Lee o escribe la coordenada y del borde superior del control, en píxeles.

TopLevelControl Obtiene el control principal que no es secundario de ningún otro control de formularios Windows Forms.Normalmente, se trata del Form más externo en el que está contenido el control.

APLICACIONES WINDOWS CON VB.NET

162

Page 249: Módulo_7_Aplicaciones Windows con VB

Visible Lee o escribe un valor que indica si se muestra el control.

Width Lee o escribe el ancho del control.

MÉTODOS PÚBLICOS

BeginInvoke Ejecuta un delegado de forma asincrónica en el subproceso donde se creó el identificador subyacente delcontrol.

BringToFront Coloca el control al principio del orden Z.

Contains Obtiene un valor que indica si el control especificado es un control secundario del control.

CreateControl Obliga a que se cree el control, incluidos el identificador y los controles secundarios.

CreateGraphics Crea el objeto Graphics para el control.

CreateObjRefCrea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado paracomunicarse con un objeto remoto.

DisposeLibera los recursos utilizados por Component.

DoDragDrop Inicia una operación de arrastrar y colocar.

EndInvoke Recupera el valor devuelto por la operación asíncrona representada por el objeto IAsyncResult que se pasa.

Equals (se hereda de Object)Determina si dos instancias de Object son iguales.

APLICACIONES WINDOWS CON VB.NET

163

Page 250: Módulo_7_Aplicaciones Windows con VB

FindForm Recupera el formulario en el que se encuentra el control.

Focus Establece el foco de entrada en el control.

GetChildAtPoint Recupera el control secundario ubicado en las coordenadas especificadas.

GetContainerControl Devuelve el siguiente ContainerControl (en sentido ascendente) de la cadena de controles principales delcontrol.

GetHashCodeSirve como función hash para un tipo concreto, apropiado para su utilización en algoritmos de hash yestructuras de datos como las tablas hash.

GetLifetimeServiceRecupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

GetNextControl Recupera el siguiente control, hacia delante o hacia atrás, en el orden de tabulación de controlessecundarios.

GetType (se hereda de Object)Obtiene el objeto Type de la instancia actual.

Hide Oculta el control al usuario.

InitializeLifetimeService Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

Invalidate Invalida una región específica del control y hace que se envíe un mensaje de dibujo al control.

Invoke Ejecuta un delegado en el subproceso que posee el identificador de ventana subyacente del control.

APLICACIONES WINDOWS CON VB.NET

164

Page 251: Módulo_7_Aplicaciones Windows con VB

PerformLayout Obliga al control a aplicar la lógica de diseño a los controles secundarios.

PointToClient Calcula la ubicación del punto especificado de la pantalla, en coordenadas de cliente.

PointToScreen Calcula la ubicación del punto especificado de cliente en coordenadas de pantalla.

PreProcessMessage Preprocesa los mensajes de entrada en el bucle de mensajes antes de enviarlos.

RectangleToClient Calcula el tamaño y la ubicación del rectángulo de pantalla especificado, en coordenadas de cliente.

RectangleToScreen Calcula el tamaño y la ubicación del rectángulo de cliente especificado, en coordenadas de pantalla.

Refresh Obliga al control a invalidar su área cliente y, acto seguido, obliga a que vuelva a dibujarse el control y suscontroles secundarios.

ResetBackColor Restablece el valor predeterminado de la propiedad BackColor.

ResetBindings Restablece el valor predeterminado de la propiedad DataBindings.

ResetCursor Restablece el valor predeterminado de la propiedad Cursor.

ResetFont Restablece el valor predeterminado de la propiedad Font.

ResetForeColor Restablece el valor predeterminado de la propiedad ForeColor.

ResetImeMode Restablece el valor predeterminado de la propiedad ImeMode.

APLICACIONES WINDOWS CON VB.NET

165

Page 252: Módulo_7_Aplicaciones Windows con VB

ResetRightToLeft Restablece el valor predeterminado de la propiedad RightToLeft.

ResetText Restablece el valor predeterminado de la propiedad Text.

ResumeLayout Reanuda la lógica de diseño habitual.

Scale Ajusta la escala del control y de todos los controles secundarios.

Select Activa un control.

SelectNextControl Activa el siguiente control.

SendToBack Envía el control al final del orden Z.

SetBounds Establece los límites del control.

Show Muestra el control al usuario.

SuspendLayout Suspende temporalmente la lógica de diseño del control.

ToStringVea Object.ToString.

Update Hace que el control vuelva a dibujar las regiones invalidadas con su área cliente.

APLICACIONES WINDOWS CON VB.NET

166

Page 253: Módulo_7_Aplicaciones Windows con VB

EVENTOS PÚBLICOS

BackColorChanged Se produce cuando el valor de la propiedad BackColor cambia.

BackgroundImageChanged Se produce cuando el valor de la propiedad BackgroundImage cambia.

BindingContextChanged Se produce cuando el valor de la propiedad BindingContext cambia.

CausesValidationChanged Se produce cuando el valor de la propiedad CausesValidation cambia.

ChangeUICues Se produce cuando cambian las guías de la interfaz de usuario para el foco o el teclado.

ContextMenuChanged Se produce cuando el valor de la propiedad ContextMenu cambia.

ControlAdded Se produce cuando se agrega un nuevo control a Control.ControlCollection.

ControlRemoved Se produce cuando se quita un control de Control.ControlCollection.

CursorChanged Se produce cuando el valor de la propiedad Cursor cambia.

DisposedAgrega un controlador de eventos para escuchar al evento Disposed en el componente.

DockChanged Se produce cuando el valor de la propiedad Dock cambia.

DragDrop Se produce cuando termina una operación de arrastrar y colocar.

APLICACIONES WINDOWS CON VB.NET

167

Page 254: Módulo_7_Aplicaciones Windows con VB

DragEnter Se produce cuando se arrastra un objeto dentro de los límites del control.

DragLeave Se produce cuando se arrastra un objeto fuera de los límites del control.

DragOver Se produce cuando se arrastra un objeto sobre los límites del control.

EnabledChanged Se produce cuando cambia el valor de la propiedad Enabled.

Enter Se produce cuando se entra en el control.

FontChanged Se produce cuando cambia el valor de la propiedad Font.

ForeColorChanged Se produce cuando cambia el valor de la propiedad ForeColor.

GiveFeedback Se produce durante una operación de arrastre.

GotFocus Se produce cuando el control recibe el foco.

HandleCreated Se produce cuando se crea un identificador para el control.

HandleDestroyed Se produce cuando el identificador del control está en proceso de eliminación.

HelpRequested Se produce cuando el usuario solicita ayuda para un control.

ImeModeChanged Se produce cuando cambia la propiedad ImeMode.

APLICACIONES WINDOWS CON VB.NET

168

Page 255: Módulo_7_Aplicaciones Windows con VB

Invalidated Se produce cuando es necesario volver a dibujar un control.

Layout Se produce cuando un control debe volver a colocar sus controles secundarios.

Leave Se produce cuando el foco de entrada deja el control.

LocationChanged Se produce cuando cambia el valor de la propiedad Location.

LostFocus Se produce cuando el control pierde el foco.

MouseHover Se produce cuando el puntero del ratón se sitúa encima del control.

MouseWheel Se produce cuando la rueda del ratón se mueve mientras el control tiene el foco.

Move Se produce cuando se mueve el control.

Paint Se produce cuando vuelve a dibujarse el control.

ParentChanged Se produce cuando cambia el valor de la propiedad Parent.

QueryAccessibilityHelp Se produce cuando AccessibleObject proporciona ayuda para aplicaciones de accesibilidad.

QueryContinueDrag Se produce durante una operación de arrastrar y colocar y permite al origen de arrastre determinar si laoperación de arrastrar y colocar tiene que cancelarse.

Resize Se produce cuando se cambia el tamaño del control.

APLICACIONES WINDOWS CON VB.NET

169

Page 256: Módulo_7_Aplicaciones Windows con VB

RightToLeftChanged Se produce cuando cambia el valor de la propiedad RightToLeft.

SizeChanged Se produce cuando cambia el valor de la propiedad Size.

StyleChanged Se produce cuando cambia el estilo del control.

SystemColorsChanged Se produce cuando se modifican los colores del sistema.

TabIndexChanged Se produce cuando cambia el valor de la propiedad TabIndex.

TabStopChanged Se produce cuando cambia el valor de la propiedad TabStop.

TextChanged Se produce cuando cambia el valor de la propiedad Text.

Validated Se produce cuando finaliza la validación del control.

Validating Se produce cuando el control se está validando.

VisibleChanged Se produce cuando cambia el valor de la propiedad Visible.

ImageList

Es un control oculto, es decir no se visualiza sobre los formularios, sino sobre una ventana especial disponibleen el entorno de desarrollo.

Permite almacenar una serie de imágenes de multiples formatos, con un tamaño específico y en un ordendeterminado.

Es como tener un álbum de fotos, en donde podemos acceder a cualquiera de ellas a través de uníndice numérico.

APLICACIONES WINDOWS CON VB.NET

170

Page 257: Módulo_7_Aplicaciones Windows con VB

Después existen varios controles que se pueden conectar con este, para poder mediante el índice seleccionarcualquiera de las imágenes aquí almacenadas.

Voy a mostrar una lista con todas sus posibles características

PROPIEDADES PÚBLICAS

ColorDepthObtiene la profundidad de color de la lista de imágenes.

Container Obtiene IContainer que contiene Component.

HandleObtiene el identificador de la lista de imágenes.

HandleCreatedObtiene un valor que indica si se ha creado el identificador de Win32 subyacente.

ImagesObtiene ImageList.ImageCollection para esta lista de imágenes.

ImageSizeLee o escribe el tamaño de las imágenes de la lista de imágenes.

ImageStreamObtiene el identificador del objeto ImageListStreamer asociado a esta lista de imágenes.

SiteLee o escribe ISite de Component.

TransparentColorLee o escribe el color que se va a tratar como transparente.

APLICACIONES WINDOWS CON VB.NET

171

Page 258: Módulo_7_Aplicaciones Windows con VB

MÉTODOS PÚBLICOS

CreateObjRefCrea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado paracomunicarse con un objeto remoto.

Dispose Libera los recursos utilizados por Component.

DrawDibuja la imagen indicada.

EqualsDetermina si dos instancias de Object son iguales.

GetHashCode Sirve como función hash para un tipo concreto, apropiado para su utilización en algoritmos de hash yestructuras de datos como las tablas hash.

GetLifetimeServiceRecupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

GetTypeObtiene el objeto Type de la instancia actual.

InitializeLifetimeService Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

ToStringVea Object.ToString.

EVENTOS PÚBLICOS

DisposedAgrega un controlador de eventos para escuchar al evento Disposed en el componente.

RecreateHandleSe produce cuando se está volviendo a crear la propiedad Handle.

APLICACIONES WINDOWS CON VB.NET

172

Page 259: Módulo_7_Aplicaciones Windows con VB

En el momento de que se inserta este control en nuestra solución se puede acceder, como cualquier otro, ala ventana de propiedades. Hay una propiedad que es la mas característica que es Images, cuando seselecciona sale la siguiente ventana:

A través de esta ventana es donde se agregan las imágenes a mi control. Vemos que en la parte derechaaparecen las propiedades de las imágenes agregadas, todas ellas son de solo lectura.

Otra propiedad interesante en este control es la de Transparentcolor, que permite indicar cual es el color delas imágenes que vamos a considerar como transparente, esto hace que todo lo que en la imagen este conese color no aparezca y se vea a su través lo que haya por detrás.

Asociar Imágenes del ImageList a controles

Hay que irse a la propiedad ImageList y seleccionar el control de lista de imágenes que deseamos asociar anuestro control, después es mediante la propiedad ImageIndex donde especifiquemos cual es la imagen detodas que queremos visualizar en el control, se nos muestra las imágenes en miniatura.

APLICACIONES WINDOWS CON VB.NET

173

Page 260: Módulo_7_Aplicaciones Windows con VB

Añadir dinámicamente imágenes al control

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

ImageList1.Images.Add(Drawing.Image.FromFile(“c:\bobada.bmp”))MessageBox.Show(ImageList1.Images.Count)

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Button2.ImageIndex = 4End Sub

En este código se va a añadir una nueva imagen directamente especificando el fichero y la trayectoria de lamisma y además se muestra el total de imágenes que se encuentran en mi control Imagelist.

Cuando se pulsa al botón dos de mi formulario se añade la imagen que tiene asociado el índice 4 de micontrol lista de imágenes.

Control Timer

Es un control invisible, sirve fundamentalmente para ejecutar una serie de tareas cuando ha transcurrido undeterminado tiempo, cada vez que pase ese lapso de tiempo definido se vuelve a ejecutar un determinadocódigo hasta el momento de que se desactive el temporizador.

Vamos a ver un listado de todas las propiedades, métodos y eventos.

PROPIEDADES PÚBLICAS

Container Obtiene IContainer que contiene Component.

EnabledObtiene o establece un valor que indica si Timer debería provocar el evento Elapsed.

IntervalObtiene o establece el intervalo en el que se provoca el evento Elapsed.

APLICACIONES WINDOWS CON VB.NET

174

Page 261: Módulo_7_Aplicaciones Windows con VB

SiteVea Component.Site.

SynchronizingObjectObtiene o establece el objeto que se utiliza para calcular referencias de las llamadas del controlador deeventos que se emiten al transcurrir un intervalo.

MÉTODOS PÚBLICOS

BeginInitComienza la inicialización en tiempo de ejecución de un objeto Timer que se utiliza en un formulario o quelo utiliza otro componente.

CloseLibera los recursos utilizados por Timer.

CreateObjRef Crea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado paracomunicarse con un objeto remoto.

DisposeLibera los recursos utilizados por Component.

EndInitFinaliza la inicialización en tiempo de ejecución de un objeto Timer que se utiliza en un formulario o queutiliza otro componente.

EqualsDetermina si dos instancias de Object son iguales.

GetHashCode Sirve como función hash para un tipo concreto, apropiado para su utilización en algoritmos de hash yestructuras de datos como las tablas hash.

GetLifetimeServiceRecupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

GetTypeObtiene el objeto Type de la instancia actual.

APLICACIONES WINDOWS CON VB.NET

175

Page 262: Módulo_7_Aplicaciones Windows con VB

InitializeLifetimeService Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

StartEmpieza a provocar el evento Elapsed estableciendo Enabled en true.

StopDeja de desencadenar el evento Elapsed estableciendo el valor de Enabled en false.

ToStringDevuelve un objeto String que representa al objeto Object actual.

EVENTOS PÚBLICOS

Disposed Agrega un controlador de eventos para escuchar al evento Disposed en el componente.

TickSe produce cuando transcurre el intervalo (propiedad Interval).

Vamos a ver una serie de ejemplos de utilización

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Timer1.Interval = 1000Timer1.Enabled = True

End Sub

Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.TickIf TextBox1.Text.Length < 20 Then

TextBox1.AppendText(“A “)Else

Timer1.Enabled = FalseEnd If

End Sub

APLICACIONES WINDOWS CON VB.NET

176

Page 263: Módulo_7_Aplicaciones Windows con VB

Se observa en este ejemplo que primero se establece el lapso de intervalo del temporizador en 1000milisegundos y después se activa el mismo, todo ello cuando se pulsa el primer botón del formulario.

Después se muestra el código del procedimiento de evento asociado al temporizador, es decir este es elcódigo que se ejecuta cada vez que haya transcurrido el tiempo especificado en interval o bien hasta que eltemporizador se desactive.

En mi caso lo único que hago cada segundo es añadir una A y un espacio en blanco a mi caja de texto 1, hastaque la longitud total de caracteres de lo que esté escrito en la caja sea igual a 20, en ese momento sedesactivará el temporizador.

Es posible activar y desactivar el temporizador también con los métodos Stara y Stop.

Barra de estado

Es un control que permite mostrar en la parte inferior de las ventanas el estado de trabajo del usuario conla aplicación. La información a mostrar puede distribuirse en zonas especiales llamadas paneles, y esta puedeser de tipo texto o en forma de iconos.

Voy a poner un listado con todas las propiedades, métodos y eventos de que dispone el control.

PROPIEDADES PÚBLICAS

AlignmentObtiene o establece la alineación horizontal del contenido del panel.

AutoSizeObtiene o establece un valor que indica el tamaño de la barra de estado cambia automáticamente.

BorderStyleObtiene o establece el estilo del borde del panel de la barra de estado.

ContainerObtiene IContainer que contiene Component.

IconObtiene o establece el icono que se va mostrar en el panel de la barra de estado.

APLICACIONES WINDOWS CON VB.NET

177

Page 264: Módulo_7_Aplicaciones Windows con VB

MinWidthObtiene o establece el ancho mínimo permitido del panel de la barra de estado en el control StatusBar.

ParentObtiene el control StatusBar que aloja el panel de la barra de estado.

SiteObtiene o establece ISite de Component.

StyleObtiene o establece el estilo del panel de la barra de estado.

TextObtiene o establece el texto del panel de la barra de estado.

ToolTipTextObtiene o establece el texto de la información sobre herramientas asociada al panel de la barra de estado.

WidthObtiene o establece el ancho del panel de la barra de estado en el control StatusBar.

MÉTODOS PÚBLICOS

CreateObjRef Crea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado paracomunicarse con un objeto remoto.

Dispose Sobrecargado. Libera los recursos utilizados por Component.

EqualsSobrecargado. Determina si dos instancias de Object son iguales.

GetHashCode Sirve como función hash para un tipo concreto, apropiado para su utilización en algoritmos de hash yestructuras de datos como las tablas hash.

GetLifetimeServiceRecupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

APLICACIONES WINDOWS CON VB.NET

178

Page 265: Módulo_7_Aplicaciones Windows con VB

GetTypeObtiene el objeto Type de la instancia actual.

InitializeLifetimeService Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

ToStringReemplazado. Vea Object.ToString.

EVENTOS PÚBLICOS

PanelClick

Agrega un controlador de eventos para escuchar al evento Disposed en el componente.

Lo mas característico de este control es su colección Panels, que es accesible desde la ventana depropiedades del control, mostrándose la siguiente ventana.

En esta ventana se puede observar que se pueden añadir varios paneles a la barra de estado, en la partederecha de la ventana aparecen las propiedades de cada uno de los paneles añadidosLa propiedad borderStyle puede ser de tipo Raised, es decir sobre elevado, Sunken (bajo relieve) o no tenerbordes.

El estilo puede ser de tipo texto o de tipo gráfico.

APLICACIONES WINDOWS CON VB.NET

179

Page 266: Módulo_7_Aplicaciones Windows con VB

Vamos a ver unos ejemplos de utilización de este control.

Private Sub StatusBar1_PanelClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.StatusBarPanelClickEventArgs) Handles StatusBar1.PanelClick

MessageBox.Show(e.StatusBarPanel.Text())End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

StatusBar1.Panels(1).Text = “has pinhado el botón”End Sub

El primer procedimiento de evento es el que esta asociado a la barra de estado, lo que hacemos essimplemente mostrar el texto del panel de la barra de estado donde ha pinchado el usuario.

El segundo procedimiento de evento cuando pulsamos al botón del formulario se va a cambiar el texto delsegundo panel de la barra de estado.

Barra de Herramientas

Es un control que se sitúa en la parte superior de las ventanas, que dispone de una serie de botones asociadosa las diferentes tareas que contempla nuestra aplicación.

Vamos a ver todas las propiedades, métodos y eventos de que dispone.

PROPIEDADES PUBLICAS

AccessibilityObject Obtiene AccessibleObject asignado al control.

AccessibleDefaultActionDescription Obtiene o establece la descripción de la acción predeterminada del control que las aplicaciones cliente deaccesibilidad utilizan.

AccessibleDescription Obtiene o establece la descripción del control que las aplicaciones cliente de accesibilidad utilizan.

APLICACIONES WINDOWS CON VB.NET

180

Page 267: Módulo_7_Aplicaciones Windows con VB

AccessibleName Obtiene o establece el nombre del control que las aplicaciones cliente de accesibilidad utilizan.

AccessibleRole Obtiene o establece la función accesible del control.

AllowDrop Obtiene o establece un valor que indica si el control puede aceptar los datos que el usuario arrastra al mismo.

Anchor Obtiene o establece los bordes del control que se acoplan a los bordes de su contenedor.

AppearanceObtiene o establece el valor que determina el aspecto de un control de barra de herramientas y sus botones.

AutoSizeObtiene o establece un valor que indica si la barra de herramientas ajusta su tamaño automáticamente segúnel tamaño de los botones y el estilo de acoplador.

BackColorReemplazado. Vea Control.BackColor.

BackgroundImageReemplazado. Vea Control.BackgroundImage.

BindingContext Obtiene o establece BindingContext del control.

BorderStyleObtiene o establece el estilo de borde del control de barra de herramientas.

Bottom Obtiene la distancia que existe entre el borde inferior del control y el borde superior del área cliente de sucontenedor.

Bounds Obtiene o establece el tamaño y la ubicación del control.

APLICACIONES WINDOWS CON VB.NET

181

Page 268: Módulo_7_Aplicaciones Windows con VB

ButtonsObtiene la colección de controles ToolBarButton asignados al control de barra de herramientas.

ButtonSizeObtiene o establece el tamaño de los botones del control de barra de herramientas.

CanFocus Obtiene un valor que indica si el control puede recibir el foco.

CanSelect Obtiene un valor que indica si el control se puede seleccionar.

Capture Obtiene o establece un valor que indica si el control ha capturado el mouse (ratón).

CausesValidation Obtiene o establece un valor que indica si el control hace que se realice una validación de todos los controlesque requieren validación cuando reciben el foco.

ClientRectangle Obtiene el rectángulo que representa el área cliente del control.

ClientSize Obtiene o establece el alto y el ancho del área cliente del control.

CompanyName Obtiene el nombre de la compañía o del creador de la aplicación que contiene el control.

Container Obtiene IContainer que contiene Component.

ContainsFocus Obtiene un valor que indica si el control, o uno de sus controles secundarios, tiene el foco de entrada en laactualidad.

ContextMenu Obtiene o establece el menú contextual asociado al control.

APLICACIONES WINDOWS CON VB.NET

182

Page 269: Módulo_7_Aplicaciones Windows con VB

Controls Obtiene la colección de controles que contiene el control.

Created Obtiene un valor que indica si se ha creado el control.

Cursor Obtiene o establece el cursor que se muestra cuando el puntero del mouse se sitúa sobre el control.

DataBindings Obtiene los enlaces de datos del control.

DisplayRectangle Obtiene el rectángulo que representa el área de presentación del control.

Disposing Obtiene un valor que indica si el control está en proceso de eliminación.

DividerObtiene o establece un valor que indica si la barra de herramientas muestra un separador.

DockReemplazado. Vea Control.Dock.

DropDownArrowsObtiene o establece un valor que indica si los botones de cuadro desplegable de una barra de herramientasmuestran flechas hacia abajo.

Enabled Obtiene o establece un valor que indica si el control puede responder a la interacción del usuario.

Focused Obtiene un valor que indica si el control tiene el foco de entrada.

Font Obtiene o establece la fuente del texto que muestra el control.

ForeColorVea Control.ForeColor.

APLICACIONES WINDOWS CON VB.NET

183

Page 270: Módulo_7_Aplicaciones Windows con VB

Handle Obtiene el identificador de ventana al que está enlazado el control.

HasChildren Obtiene un valor que indica si el control contiene uno o más controles secundarios.

Height Obtiene o establece el alto del control.

ImageListObtiene o establece la colección de imágenes disponibles para los controles de botón de barra deherramientas.

ImageSizeObtiene el tamaño de las imágenes de la lista de imágenes asignada a la barra de herramientas.

ImeModeObtiene o establece el modo del Editor de métodos de entrada (IME) que este control admite.

InvokeRequired Obtiene un valor que indica si el llamador debe llamar a un método de invocación cuando realiza llamadasa métodos del control porque el llamador se encuentra en un subproceso distinto al del control donde se creó.

IsAccessible Obtiene o establece un valor que indica si el control es visible para las aplicaciones de accesibilidad.

IsDisposed Obtiene un valor que indica si el control se ha eliminado.

IsHandleCreated Obtiene un valor que indica si el control tiene un identificador asociado.

Left Obtiene o establece la coordenada x del borde izquierdo de un control, en píxeles.

Location Obtiene o establece las coordenadas de la esquina superior izquierda del control en relación con la esquinasuperior izquierda de su contenedor.

APLICACIONES WINDOWS CON VB.NET

184

Page 271: Módulo_7_Aplicaciones Windows con VB

Name Obtiene o establece el nombre del control.

Parent Obtiene o establece el contenedor principal del control.

ProductName Obtiene el nombre de producto del ensamblado que contiene el control.

ProductVersion Obtiene la versión del ensamblado que contiene el control.

RecreatingHandle Obtiene un valor que indica si el control está volviendo a crear su identificador en la actualidad.

Region Obtiene o establece la región de ventana asociada al control.

Right Obtiene la distancia entre el borde derecho del control y el borde izquierdo de su contenedor.

RightToLeftReemplazado. Vea Control.RightToLeft.

ShowToolTipsObtiene o establece un valor que indica si la barra de herramientas muestra texto de información sobreherramientas para cada botón.

Site Reemplazado. Obtiene o establece el sitio del control.

Size Obtiene o establece el alto y el ancho del control.

TabIndex Obtiene o establece el orden de tabulación del control en su contenedor.

Tag Obtiene o establece el objeto que contiene datos sobre el control.

APLICACIONES WINDOWS CON VB.NET

185

Page 272: Módulo_7_Aplicaciones Windows con VB

TextReemplazado. Vea Control.Text.

TextAlignObtiene o establece la alineación del texto respecto a cada imagen que se muestra en los controles de botónde barra de herramientas.

Top Obtiene o establece la coordenada y del borde superior del control, en píxeles.

TopLevelControl Obtiene el control principal que no es secundario de ningún otro control de formularios Windows Forms.Normalmente, se trata del Form más externo en el que está contenido el control.

Visible Obtiene o establece un valor que indica si se muestra el control.

Width Obtiene o establece el ancho del control.

WrappableObtiene o establece un valor que indica si los botones de la barra de herramientas pasan a la línea siguientecuando la barra de herramientas se hace demasiado pequeña para mostrar todos los botones en la mismalínea.

MÉTODOS PÚBLICOS

BeginInvoke Ejecuta un delegado de forma asincrónica en el subproceso donde se creó el identificador subyacente delcontrol.

BringToFront Coloca el control al principio del orden Z.

Contains Obtiene un valor que indica si el control especificado es un control secundario del control.

CreateControl Obliga a que se cree el control, incluidos el identificador y los controles secundarios.

APLICACIONES WINDOWS CON VB.NET

186

Page 273: Módulo_7_Aplicaciones Windows con VB

CreateGraphics Crea el objeto Graphics para el control.

CreateObjRefCrea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado paracomunicarse con un objeto remoto.

DisposeSobrecargado. Libera los recursos utilizados por Component.

DoDragDrop Inicia una operación de arrastrar y colocar.

EndInvoke Recupera el valor devuelto por la operación asíncrona representada por el objeto IAsyncResult que se pasa.

Equals (se hereda de Object)Sobrecargado. Determina si dos instancias de Object son iguales.

FindForm Recupera el formulario en el que se encuentra el control.

Focus Establece el foco de entrada en el control.

GetChildAtPoint Recupera el control secundario ubicado en las coordenadas especificadas.

GetContainerControl Devuelve el siguiente ContainerControl (en sentido ascendente) de la cadena de controles principales delcontrol.

GetHashCode (se hereda de Object)Sirve como función hash para un tipo concreto, apropiado para su utilización en algoritmos de hash yestructuras de datos como las tablas hash.

GetLifetimeService (se hereda de MarshalByRefObject)Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

APLICACIONES WINDOWS CON VB.NET

187

Page 274: Módulo_7_Aplicaciones Windows con VB

GetNextControl Recupera el siguiente control, hacia delante o hacia atrás, en el orden de tabulación de controlessecundarios.

GetType (se hereda de Object)Obtiene el objeto Type de la instancia actual.

Hide Oculta el control al usuario.

InitializeLifetimeService (se hereda de MarshalByRefObject)Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

Invalidate Sobrecargado. Invalida una región específica del control y hace que se envíe un mensaje de dibujo al control.

Invoke Sobrecargado. Ejecuta un delegado en el subproceso que posee el identificador de ventana subyacente delcontrol.

PerformLayout Sobrecargado. Obliga al control a aplicar la lógica de diseño a los controles secundarios.

PointToClient Calcula la ubicación del punto especificado de la pantalla, en coordenadas de cliente.

PointToScreen Calcula la ubicación del punto especificado de cliente en coordenadas de pantalla.

PreProcessMessage Preprocesa los mensajes de entrada en el bucle de mensajes antes de enviarlos.

RectangleToClient Calcula el tamaño y la ubicación del rectángulo de pantalla especificado, en coordenadas de cliente.

RectangleToScreen Calcula el tamaño y la ubicación del rectángulo de cliente especificado, en coordenadas de pantalla.

APLICACIONES WINDOWS CON VB.NET

188

Page 275: Módulo_7_Aplicaciones Windows con VB

Refresh Obliga al control a invalidar su área cliente y, acto seguido, obliga a que vuelva a dibujarse el control y suscontroles secundarios.

ResetBackColor Restablece el valor predeterminado de la propiedad BackColor.

ResetBindings Restablece el valor predeterminado de la propiedad DataBindings.

ResetCursor Restablece el valor predeterminado de la propiedad Cursor.

ResetFont Restablece el valor predeterminado de la propiedad Font.

ResetForeColor Restablece el valor predeterminado de la propiedad ForeColor.

ResetImeMode Restablece el valor predeterminado de la propiedad ImeMode.

ResetRightToLeft Restablece el valor predeterminado de la propiedad RightToLeft.

ResetText Restablece el valor predeterminado de la propiedad Text.

ResumeLayout Sobrecargado. Reanuda la lógica de diseño habitual.

Scale Sobrecargado. Ajusta la escala del control y de todos los controles secundarios.

Select Sobrecargado. Activa un control.

SelectNextControl Activa el siguiente control.

APLICACIONES WINDOWS CON VB.NET

189

Page 276: Módulo_7_Aplicaciones Windows con VB

SendToBack Envía el control al final del orden Z.

SetBounds Sobrecargado. Establece los límites del control.

Show Muestra el control al usuario.

SuspendLayout Suspende temporalmente la lógica de diseño del control.

ToStringReemplazado. Vea Object.ToString.

Update Hace que el control vuelva a dibujar las regiones invalidadas con su área cliente.

EVENTOS PÚBLICOS

BackColorChanged Se produce cuando el valor de la propiedad BackColor cambia.

BackgroundImageChanged Se produce cuando el valor de la propiedad BackgroundImage cambia.

BindingContextChanged Se produce cuando el valor de la propiedad BindingContext cambia.

ButtonClickSe produce cuando se hace clic en un ToolBarButton de la ToolBar.

ButtonDropDownSe produce cuando se hace clic en un ToolBarButton de tipo desplegable o en la flecha hacia abajo.

CausesValidationChanged Se produce cuando el valor de la propiedad CausesValidation cambia.

APLICACIONES WINDOWS CON VB.NET

190

Page 277: Módulo_7_Aplicaciones Windows con VB

ChangeUICues Se produce cuando cambian las guías de la interfaz de usuario para el foco o el teclado.

Click Se produce cuando se hace clic en el control.

ContextMenuChanged Se produce cuando el valor de la propiedad ContextMenu cambia.

ControlAdded Se produce cuando se agrega un nuevo control a Control.ControlCollection.

ControlRemoved Se produce cuando se quita un control de Control.ControlCollection.

CursorChanged Se produce cuando el valor de la propiedad Cursor cambia.

DisposedAgrega un controlador de eventos para escuchar al evento Disposed en el componente.

DockChanged Se produce cuando el valor de la propiedad Dock cambia.

DoubleClick Se produce cuando se hace doble clic en el control.

DragDrop Se produce cuando termina una operación de arrastrar y colocar.

DragEnter Se produce cuando se arrastra un objeto dentro de los límites del control.

DragLeave Se produce cuando se arrastra un objeto fuera de los límites del control.

DragOver Se produce cuando se arrastra un objeto sobre los límites del control.

APLICACIONES WINDOWS CON VB.NET

191

Page 278: Módulo_7_Aplicaciones Windows con VB

EnabledChanged Se produce cuando cambia el valor de la propiedad Enabled.

Enter Se produce cuando se entra en el control.

FontChanged Se produce cuando cambia el valor de la propiedad Font.

ForeColorChanged Se produce cuando cambia el valor de la propiedad ForeColor.

GiveFeedback Se produce durante una operación de arrastre.

GotFocus Se produce cuando el control recibe el foco.

HandleCreated Se produce cuando se crea un identificador para el control.

HandleDestroyed Se produce cuando el identificador del control está en proceso de eliminación.

HelpRequested Se produce cuando el usuario solicita ayuda para un control.

ImeModeChanged Se produce cuando cambia la propiedad ImeMode.

Invalidated Se produce cuando es necesario volver a dibujar un control.

KeyDown Se produce cuando se presiona una tecla mientras el control tiene el foco.

KeyPress Se produce cuando se presiona una tecla mientras el control tiene el foco.

APLICACIONES WINDOWS CON VB.NET

192

Page 279: Módulo_7_Aplicaciones Windows con VB

KeyUp Se produce cuando se suelta una tecla mientras el control tiene el foco.

Layout Se produce cuando un control debe volver a colocar sus controles secundarios.

Leave Se produce cuando el foco de entrada deja el control.

LocationChanged Se produce cuando cambia el valor de la propiedad Location.

LostFocus Se produce cuando el control pierde el foco.

MouseDown Se produce cuando el puntero del ratón está sobre el control y se presiona un botón del mouse.

MouseEnter Se produce cuando el puntero del ratón entra en el control.

MouseHover Se produce cuando el puntero del ratón se sitúa encima del control.

MouseLeave Se produce cuando el puntero del ratón deja el control.

MouseMove Se produce cuando el puntero del ratón se mueve sobre el control.

MouseUp Se produce cuando el puntero del ratón está encima del control y se suelta un botón del mouse.

MouseWheel Se produce cuando la rueda del ratón se mueve mientras el control tiene el foco.

Move Se produce cuando se mueve el control.

APLICACIONES WINDOWS CON VB.NET

193

Page 280: Módulo_7_Aplicaciones Windows con VB

ParentChanged Se produce cuando cambia el valor de la propiedad Parent.

QueryAccessibilityHelp Se produce cuando AccessibleObject proporciona ayuda para aplicaciones de accesibilidad.

QueryContinueDrag Se produce durante una operación de arrastrar y colocar y permite al origen de arrastre determinar si laoperación de arrastrar y colocar tiene que cancelarse.

Resize Se produce cuando se cambia el tamaño del control.

RightToLeftChanged Se produce cuando cambia el valor de la propiedad RightToLeft.

SizeChanged Se produce cuando cambia el valor de la propiedad Size.

StyleChanged Se produce cuando cambia el estilo del control.

SystemColorsChanged Se produce cuando se modifican los colores del sistema.

TabIndexChanged Se produce cuando cambia el valor de la propiedad TabIndex.

TabStopChanged Se produce cuando cambia el valor de la propiedad TabStop.

TextChanged Se produce cuando cambia el valor de la propiedad Text.

Validated Se produce cuando finaliza la validación del control.

Validating Se produce cuando el control se está validando.

APLICACIONES WINDOWS CON VB.NET

194

Page 281: Módulo_7_Aplicaciones Windows con VB

VisibleChanged Se produce cuando cambia el valor de la propiedad Visible.

Añadir y eliminar botones de la barra de herramientas

Depués de insertar el control de barra de herramientas en nuestro formulario, accedemos a las propiedadesdel mismo, hay una propiedad llamada buttons, que cuando la elegimos sale la siguiente ventana.

En esta ventana se pueden añadir los botones que deseemos y establecer las propiedades oportunas a cadauno de ellos.

Añadir iconos a los botones de la barra de herramientas

Lo primero es añadir un control Imagelist a la solución, añadir las imágenes que deseemos a este control.

Irse a las propiedades generales del control de barra de herramientas, y en su propiedad ImageList,seleccionar el control de lista de imágenes con que queremos conectar la barra de herramientas.

A partir de este momento se puede seleccionar la propiedad buttons de Toolbar y cuando se accede a laspropiedades de los botones trabajar con la propiedad ImageIndex , en la que se muestran todas las imágenes

APLICACIONES WINDOWS CON VB.NET

195

Page 282: Módulo_7_Aplicaciones Windows con VB

que se encuentran en el control ImageList para que seleccionemos la que queremos visualizar en el botónde la barra de herramientas donde estamos trabajando.

Poner un separador en la barra de herramientas

Permite agrupar los botones que se visualizan en la barra de herramientas.

Se ha de ir a la ventana de propiedades de los botones, seleccionar el botón adecuado, y en la propiedadStyle elegir Separator, si añadimos otro botón a la barra de herramientas observamos que el nuevo botónesta separado del botón anterior al del tipo separador.

Establecer botones de dos estados

Son botones que cuando se presionan se mantienen presionados y cuando se vuelven a presionar sedespresionan, permiten mostrar dos estados posibles de una tarea o función.

Se consigue estando en la colección de botones y estableciendo a la propiedad Style el valor ToggleButton.

Establecer botones que muestran un menú

Son botones que tienen a su lado un pequeño botón con una flecha, cuando se pulsa el botón de la flecha sedespliega el menú.

Primeramente es necesario que introduzcamos en nuestro formulario un menú que generalmente suele sercontextual, e introducir en él todos los elementos que deseemos que se visualicen en el botón de la barrade herramientas.

Una vez hecho esto nos pasamos a la colección de botones de la barra de herramientas, seleccionamos elbotón adecuado y establecemos el estilo de este botón a DropDownButton.

Mas tarde en la propiedad DropDownMenu elegimos el menú o la opción del menú que deseemos que aparezcaen el botón, se nos muestra una lista a seleccionar.

Mostrar un botón presionado o parcialmente presionado

A la hora de mostrar la aplicación con su barra de herramientas los botones se encuentran sin presionar, hayocasiones en que esto no nos interesa, para lo cual debemos de ir a la colección buttons y establecer las

APLICACIONES WINDOWS CON VB.NET

196

Page 283: Módulo_7_Aplicaciones Windows con VB

propiedadesPushed y PartialPushed a true, esta última opción muestra el botón en estado como de desactivopor lo que se ve como sombreado.

Captar el botón pulsado

Private Sub ToolBar1_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles ToolBar1.ButtonClick

MessageBox.Show(e.Button.Text)MessageBox.Show(e.Button.ToString)MessageBox.Show(e.Button.Tag)

Observamos en el procedimiento de evento, el argumento e, a este se le va a pasar en un momento el botónque se acaba de pulsar de la barra de herramientas.

En estas líneas se va a mostrar primero el texto que tiene un botón, un mensaje con alguna de lascaracterísticas del botón pulsado y el valor de la propiedad tag.

Tag es una propiedad a la que se le puede asignar cualquier valor en modo diseño o en ejecución, de maneraque si nosotros hemos asignado a la propiedad tag de cada botón la posición que ocupa el botón dentro dela barra de herramientas, podemos averiguar indirectamente cual es el botón pulsado.

Lo siguiente es que se averigua cual es el botón pulsado, precisamente mediante la propiedad Tag a la quese le ha puesto una serie de números y se muestra un mensaje alusivo.

Select Case e.Button.TagCase 1

MessageBox.Show(“SE HA PULSADO EL PRIMER BOTÓN”)Case 2

MessageBox.Show(“SE HA PULSADO EL SEGUNDO BOTÓN”)Case 3

MessageBox.Show(“SE HA PULSADO EL TERCER BOTÓN”)Case 4

MessageBox.Show(“SE HA PULSADO EL CUARTO BOTÓN”)Case 5

MessageBox.Show(“SE HA PULSADO EL QUINTO BOTÓN”)End Select

End Sub

APLICACIONES WINDOWS CON VB.NET

197

Page 284: Módulo_7_Aplicaciones Windows con VB

Codificar acciones de los menús de botones

Dado que uno de estos menús que se puede desplegar al interactuar con los botones de la barra deherramientas, se construye como un menú contextual, la codificación de cada elemento de este menú es tansencillo como dar un doble clic en el elemento a codificar del menú contextual cuando este aparece enmodo de edición en nuestro formulario.

Añadir o eliminar botones dinámicamente

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Dim botoncito As New ToolBarButton()

botoncito.Style = ToolBarButtonStyle.ToggleButtonbotoncito.Tag = ToolBar1.Buttons.Count + 1botoncito.Text = “boton “ & botoncito.TagToolBar1.Buttons.Add(botoncito)

End Sub

En este primer procedimiento vamos a declarar una variable para recibir un objeto de tipo botón de barrade herramientas.

Indicamos que el estilo del mismo sea de dos estados, especificamos un valor a la propiedad tag, que esprecisamente el número total de botones que tiene la barra mas uno.

A cada botón nuevo le ponemos un texto relativo al número secuencial de botones que vamos añadiendo ala barra.

Finalmente se añade a la colección de botones de la barra de herramientas nuestro nuevo botón.

En el procedimiento siguiente lo que se codifica es la eliminación de un de los botones de la barra deherramientas especificado por su índice.

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.ClickToolBar1.Buttons.RemoveAt(2)

End Sub

APLICACIONES WINDOWS CON VB.NET

198

Page 285: Módulo_7_Aplicaciones Windows con VB

Módulo: APLICACIONES WINDOWS CON VB.NET – Caso prácticoEstamos en una pequeña empresa en la que la administración está reducida a una única persona.Los medios disponibles no son muchos y el pago de licencias de software es una preocupación del gerente,por lo que intenta evitarlo a toda costa.Por ello, para gestionar las notas que se toman y generar los pocos documentos de texto que manipulan nonecesitan una herramienta tan potente como pueda ser Microsoft Word, encima integrado dentro de la suiteOffice, con el precio que hay que pagar por licencia.Las soluciones existentes en el software libre no le convencen por la falta de soporte.

Ejercicio Has de desarrollarle una herramienta como el Word, pero por con menos funcionalidades.

- Estos son los requerimientos de la aplicación:- Poder trabajar con varios documentos abiertos a la vez.- Posibilidades de edición de la fuente, color de la misma y de fondo, por párrafos o palabras

seleccionadas.- Opción de salvar los documentos creados para posterior uso, así como poder recuperarlos.

APLICACIONES WINDOWS CON VB.NET CASO PRÁCTICO

1

© élogos Conocimiento, S.L. Madrid 2009. Todos los derechos de Propiedad Intelectual e Industrial de esta obra pertenecen a élogos Conocimiento, S.L.