Microsoft Visual Studio 2005 Manual Español Parte2

download Microsoft Visual Studio 2005 Manual Español Parte2

of 100

Transcript of Microsoft Visual Studio 2005 Manual Español Parte2

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    1/100

    Visual Studio 2005 101

    En el bloque Catch podemos indicar que tipo de excepcin queremos captu-

    rar, para ello usaremos una variable de tipo Exception, la cual pude ser del

    tipo de error especfico que queremos controlar o de un tipo genrico.

    Por ejemplo, si sabemos que nuestro cdigo puede producir un error al tra-

    bajar con ficheros, podemos usar un cdigo como este:

    Si nuestra intencin es capturar todos los errores que se produzcan, es decir,

    no queremos hacer un filtro con errores especficos, podemos usar la claseException como tipo de excepcin a capturar. La clase Exception es la ms

    genrica de todas las clases para manejo de excepciones, por tanto capturar

    todas las excepciones que se produzcan.

    Aunque si no vamos usar la variable indicada en el bloque Catch, pero que-

    remos que no se detenga la aplicacin cuando se produzca un error, pode-

    mos hacerlo de esta forma:

    Var ias captur as de er r or es en un mismo bloque Tr y/ Catch

    En un mismo Try podemos capturar diferentes tipos de errores, para ello

    podemos incluir varios bloques Catch, cada uno de ellos con un tipo de ex-

    cepcin diferente.

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    2/100

    Cursos102

    Es importante tener en cuenta que cuando se produce un error y usamos va-

    rios bloques Catch, Visual Basic buscar la captura que mejor se adapte al

    error que se ha producido, pero siempre lo har examinando los diferentes

    bloques Catch que hayamos indicado empezando por el indicado despus

    del bloque Try, por tanto deberamos poner las ms genricas al final, de

    forma que siempre nos aseguremos de que las capturas de errores ms espe-

    cficas se intercepten antes que las genricas.

    Evaluacin condicional en un bloque Catch

    Adems de indicar la excepcin que queremos controlar, en un bloque

    Catch podemos aadir la clusula When para evaluar una expresin. Si la

    evaluacin de la expresin indicada despus de When devuelve un valor

    verdadero, se procesar el bloque Catch, en caso de que devuelva un valor

    falso, se ignorar esa captura de error.

    Esto nos permite poder indicar varios bloques Catch que detecten el mismo

    error, pero cada una de ellas puede tener diferentes expresiones indicadas

    con When.

    En el siguiente ejemplo, se evala el bloque Catch solo cuando el valor de

    la variable y es cero, en otro caso se utilizar el que no tiene la clusula

    When:

    Bloque Finally

    En este bloque podemos indicar las instrucciones que queremos que se eje-

    cuten, se produzca o no una excepcin. De esta forma nos aseguramos de

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    3/100

    Visual Studio 2005 103

    que siempre se ejecutar un cdigo, por ejemplo para liberar recursos, se

    haya producido un error o no.

    Nota.- Hay que tener en cuenta de que incluso si usamos Exit Try para sa-

    lir del bloque de control de errores, se ejecutar el cdigo indicado

    en el bloque Finally.

    Captur a de er r or es no contr olados

    Como es lgico, si no controlamos las excepciones que se puedan producir

    en nuestras aplicaciones, estas sern inicialmente controladas por el propio

    runtime de .NET, en estos casos la aplicacin se detiene y se muestra el

    error al usuario. Pero esto es algo que no deberamos consentir, por tanto

    siempre deberamos detectar todos los errores que se produzcan en nuestras

    aplicaciones, pero a pesar de que lo intentemos, es muy probable que no

    siempre podamos conseguirlo. Por suerte, en Visual Basic 2005 tenemos

    dos formas de interceptar los errores no controlados: La primera es inician-

    do nuestra aplicacin dentro de un bloque Try/Catch, de esta forma, cuando

    se produzca el error, se capturar en el bloque Catch. La segunda forma de

    interceptar los errores no controlados es mediante el evento: UnhandledEx-

    ception, disponible por medio del objetoMy.Application.

    Nota.- De los eventos nos ocuparemos en la siguiente leccin, pero como

    el evento UnhandledException est directamente relacionado con

    la captura de errores, lo mostramos en esta, aunque recomendamos

    al lector que esta seccin la vuelva a leer despus de ver todo lo re-

    lacionado con los eventos.

    Este evento se "dispara" cuando se produce un error que no hemos intercep-

    tado, por tanto podramos usarlo para prevenir que nuestra aplicacin se de-

    tenga o bien para guardar en un fichero .log la causa de dicho error para

    posteriormente actualizar el cdigo y prevenirlo. Ya que cuando se produceel evento UnhandledException, podemos averiguar el error que se ha pro-

    ducido e incluso evitar que la aplicacin finalice. Esa informacin la obte-

    nemos mediante propiedades expuestas por el segundo parmetro del even-

    to, en particular la propiedadException nos indicar el error que se ha pro-

    ducido y por medio de la propiedad ExitApplication podemos indicar si

    terminamos o no la aplicacin.

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    4/100

    Cursos104

    Nota.- Cuando ejecutamos una aplicacin desde el IDE, los errores no

    controlados siempre se producen, independientemente de que ten-

    gamos o no definida la captura de errores desde el evento Unhand-

    ledException. Ese evento solo se producir cuando ejecutemos la

    aplicacin fuera del IDE de Visual Basic.

    Eventos y delegados

    La forma que tienen nuestras clases y estructuras de comunicar que algo es-

    t ocurriendo, es por medio de eventos. Los eventos son mensajes que se

    lanzan desde una clase para informar al "cliente" que los utiliza de que est

    pasando algo.

    Seguramente estaremos acostumbrados a usarlos, incluso sin tener una no-

    cin consciente de que se tratan de eventos, o bien porque es algo tan habi-

    tual que no le prestamos mayor atencin, es el caso de las aplicaciones de

    escritorio, cada vez que presionamos un botn, escribimos algo o movemos

    el mouse se estn produciendo eventos.

    El compilador de Visual Basic 2005 nos facilita mucho la creacin de los

    eventos y "esconde" todo el proceso que .NET realmente hace "en la som-

    bra". Ese trabajo al que nos referimos est relacionado con los delegados,una palabra que suele aparecer en cualquier documentacin que trate sobre

    los eventos.

    Y es que, aunque VB2005 nos oculte, o facilite, el trabajo con los eventos,

    stos estn estrechamente relacionados con los delegados. En esta leccin

    veremos que son los delegados y que relacin tienen con los eventos, tam-

    bin veremos que podemos tener mayor control sobre cmo se interceptan

    los eventos e incluso cmo y cuando se asocian los eventos en la aplicacin

    cliente, aunque primero empezaremos viendo cmo declarar y utilizar even-tos en nuestros tipos de datos.

    Eventos

    Como hemos comentado en la introduccin, en Visual Basic 2005 podemos

    usar los eventos de una forma bastante sencilla, al menos si la comparamos

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    5/100

    Visual Studio 2005 105

    con otros lenguajes de la familia .NET. En las secciones que siguen vere-

    mos cmo utilizar los eventos que producen las clases de .NET, empezare-

    mos con ver cmo utilizar los eventos de los formularios, que con toda se-

    guridad sern los que estamos ms acostumbrados a usar. Tambin veremos

    las distintas formas que tenemos de asociar un mtodo con el evento produ-

    cido por un control (que al fin y al cabo es una clase).

    Inter ceptar los eventos de los contr oles de un for mular io

    Debido a que an no hemos visto el mdulo dedicado a las aplicaciones de Win-

    dows, en las que se utilizan los "clsicos" formularios, no vamos a entrar en detalles

    sobre cmo crear un formulario ni como aadir controles, etc., todo eso lo veremos

    en el siguiente mdulo. Para simplificar las cosas, veremos cmo se interceptan en

    un formulario de la nueva versin de Visual Basic, aunque sin entrar en demasiadosdetalles.

    La forma ms sencilla de asociar el evento de un control con el cdigo que se usar,

    es haciendo doble pulsacin en el control cuando estamos en modo de diseo; por

    ejemplo, si en nuestro formulario tenemos un botn, al hacer doble pulsacin sobre

    l tendremos asociado el evento Clickdel botn, ya que ese es el evento predetermi-

    nado de los controles Button, y desde el diseador de formularios de Windows, al

    realizar esa doble pulsacin, siempre se muestra el evento predeterminado del con-

    trol en cuestin.

    Interceptar eventos en Visual Basic 2005

    En Visual Basic 2005 aunque la forma de asignar los eventos predetermina-

    dos de los controles es como hemos comentado anteriormente, es decir,

    haciendo doble pulsacin en el control, la declaracin del cdigo usado para

    interceptar el evento es como el mostrado en el siguiente cdigo:

    Lo primero que podemos notar es que en Visual Basic 2005 utiliza dos ar-

    gumentos, esto siempre es as en todos los eventos producidos por los con-

    troles. El primero indica el control que produce el evento, (en nuestro ejem-

    plo sera una referencia al control Button1), y el segundo normalmente con-

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    6/100

    Cursos106

    tiene informacin sobre el evento que se produce, si el evento en cuestin

    no proporciona informacin extra, como es el caso del evento Click, ese pa-

    rmetro ser del tipoEventArgs. Sin embargo en otros eventos, por ejemplo,

    los relacionados con el mouse, el segundo argumento tendr informacin

    que nos puede resultar til, por ejemplo para saber que botn se ha usado o

    cual es la posicin del cursor, en la figura 2.17 podemos ver las propiedades

    relacionadas con el eventoMouseEventArgs:

    Figura 2.17 Propiedades relacionadas con un evento del mouse

    Asociar un evento con un contr ol

    Siguiendo con el cdigo que intercepta el evento Clickde un botn, pode-

    mos apreciar que el IDE de Visual Basic 2005 aade al final de la declara-

    cin del procedimiento de evento la instruccinHandles seguida del control

    y el evento que queremos interceptar: Handles Button1.Click, esta la for-

    ma habitual de hacerlo en Visual Basic 2005, aunque tambin hay otras

    formas de "ligar" un mtodo con un evento, como tendremos ocasin de

    comprobar ms adelante.

    Nota.- En Visual Basic 2005 el nombre del procedimiento de evento no

    tiene porqu estar relacionado con el evento, aunque por defecto, el

    nombre usado es el que habitualmente se ha utilizado por aos en

    otros entornos de desarrollo, y que se forma usando el nombre del

    control seguido de un guin bajo y el nombre del evento, pero que

    en cualquier momento lo podemos cambiar, ya que en VB2005 no

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    7/100

    Visual Studio 2005 107

    hay ninguna relacin directa entre ese nombre y el evento que que-

    remos interceptar.

    Tal como resaltamos en la nota anterior, en Visual Basic 2005, el nombre

    asociado a un evento puede ser el que queramos, lo realmente importante es

    que indiquemos la instruccinHandles seguida del evento que queremos in-

    terceptar. Aunque, como veremos a continuacin, tambin hay otras formas

    de "relacionar" los eventos con el mtodo usado para recibir la notificacin.

    For mas de asociar los eventos con un contr ol

    Cuando estamos trabajando con el diseador de formularios, tenemos tres

    formas de asociar un evento con el cdigo correspondiente:

    La forma ms sencilla es la expuesta anteriormente, es decir, haciendo do-

    ble click en el control, esto har que se muestre el evento predeterminado

    del control. En el caso del control Button, el evento predeterminado es el

    evento Click.

    Si queremos escribir cdigo para otros eventos podemos hacerlo de tres

    formas, aunque la primera que explicaremos no ser la ms habitual, ya que

    debemos saber exactamente qu parmetros utiliza el evento.

    Asociar el evento manualmente por medio de Handles

    Con esta forma, simplemente escribimos el nombre del procedimiento (pue-

    de ser cualquier nombre), indicamos los dos argumentos que recibe: el pri-

    mero siempre es de tipo Objecty el segundo depender del tipo de evento, y

    finalmente por medio de la clusula Handles lo asociamos con el control y

    el evento en cuestin.

    Asociar el evento desde la ventana de cdigo

    En Visual Basic 2005 tambin podemos seleccionar los eventos disponibles

    de una lista desplegable. Esto lo haremos desde la ventana de cdigo. En la

    parte superior derecha tenemos una la lista con los controles que hemos

    aadido al formulario, seleccionamos el control que nos interese y en la lista

    que hay a su izquierda tenemos los eventos que ese control produce. Por

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    8/100

    Cursos108

    tanto podemos seleccionar de esa lista de eventos el que nos interese inter-

    ceptar, tal como podemos ver en la figura 2.18

    Figura 2.18 Lista de eventos de un control

    De esta forma el propio IDE ser el que cree el "esqueleto" del procedi-

    miento de evento usando los parmetros adecuados.

    Asociar el evento desde el diseador de formularios

    Figura 2.19 Ventana de propiedades con los eventos del

    control seleccionado

    La tercera forma de asociar un evento con un con-

    trol, es hacerlo desde el diseador de formularios.

    En la ventana de propiedades del control, (tal co-

    mo podemos apreciar en la figura 2.19), tenemos

    una lista con los eventos ms importantes de cada

    control, seleccionando el evento de esa lista y

    haciendo doble-click en el que nos interese, con-

    seguiremos exactamente el mismo resultado que

    con el paso anterior.

    Asociar var ios eventos a un mismo pr ocedimiento

    Cuando utilizamos Handles para asociar eventos, podemos indicar que un

    mismo procedimiento sirva para interceptar varios eventos. Veamos un caso

    prctico en el que tenemos varios controles de tipo TextBox y queremos que

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    9/100

    Visual Studio 2005 109

    cuando reciban el foco siempre se ejecute el mismo cdigo, por ejemplo,

    que se seleccione todo el texto que contiene, podemos hacerlo indicando

    despus de la clusula Handles todos los controles que queremos asociar

    con ese procedimiento. En el siguiente cdigo indicamos tres controles

    TextBox:

    Esta asociacin la podemos hacer manualmente, simplemente indicando en

    la clusulaHandles cada uno de los eventos a continuacin del anterior se-parndolos por comas. O bien desde el diseador de formularios. En este

    segundo caso, cuando seleccionamos un control y desde la ventana de pro-

    piedades, seleccionamos un evento, nos muestra los procedimientos que te-

    nemos definidos en nuestro cdigo que utilizan los mismos parmetros que

    el evento en cuestin, si seleccionamos uno de esos procedimientos, el pro-

    pio IDE aadir ese control a la lista Handles. Como vemos en la figura

    2.20 podemos usar el procedimiento TextBox1_Enter para asociarlo al

    eventoEnterdel control TextBox2:

    Figura 2.20 Lista de procedimientos compatibles con un evento

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    10/100

    Cursos110

    Declar ar una var iable par a asociar elementos con Handles

    Para que podamos usar la instruccinHandles para asociar manualmente un

    procedimiento con un evento, o para que el diseador de Visual Basic 2005pueda hacerlo, la variable del control o clase que tiene los eventos que que-

    remos interceptar tenemos que declararla con la instruccin WithEvents.

    De estos detalles se encarga el propio IDE de Visual Basic 2005, por tanto

    no debemos preocuparnos de cmo declarar los controles para que se pueda

    usarHandles en el mtodo del procedimiento que recibe la notificacin del

    evento, pero como los controles de .NET realmente son clases, veamos c-

    mo declara el VB los controles, (en este caso un control llamado Button1),

    para a continuacin compararlo con una clase definida por nosotros.

    Si en lugar de estar trabajando con formularios y controles, lo hacemos con

    clases "normales", la forma de declarar una variable que tiene eventos es

    por medio de la instruccin WithEvents. Por ejemplo, en esta declaracin

    indicamos que tenemos intencin de usar los eventos que la clase Emplea-

    do exponga:

    Y posteriormente podremos definir los mtodos de eventos usando la ins-

    truccinHandles:

    Nota.- Usar WithEvents y Handles es la forma ms sencilla de declarar y

    usar una variable que accede a una clase que produce eventos, pero

    como ya hemos comentado, no es la nica forma que tenemos de

    hacerlo en Visual Basic 2005, tal como tendremos oportunidad de

    comprobar.

    Ver vdeo 28 Eventos 1.

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    11/100

    Visual Studio 2005 111

    Delegados

    Como hemos comentado anteriormente, los eventos son acciones que una

    clase puede producir cuando ocurre algo. De esta forma podemos notificar alas aplicaciones que hayan decidido interceptar esos mensajes para que to-

    men las acciones que crean conveniente.

    Visual Basic 2005 esconde al desarrollador prcticamente todo lo que ocu-

    rre cada vez que definimos, lanzamos o interceptamos un evento, nosotros

    solo vemos una pequea parte de todo el trabajo que en realidad se produce,

    y el que no lo veamos no quiere decir que no est ocurriendo. Tambin es

    cierto que no debe preocuparnos demasiado si no sabemos lo que est pa-

    sando, pero si somos consciente de que es lo que ocurre, puede que nosayude a comprender mejor todo lo relacionado con los eventos.

    Qu ocur r e cuando se asigna y se pr oduce un evento?

    Intentemos ver de forma sencilla lo que ocurre "por dentro" cada vez que

    definimos un mtodo que intercepta un evento y cmo hace el Visual Basic

    para comunicarse con el receptor de dicho evento.

    1. Cuando Visual Basic se encuentra con el cdigo que le indica queun mtodo debe interceptar un evento, ya sea medianteAddHand-lero mediante el uso deHandles, lo que hace es aadir la direccin

    de memoria de ese mtodo a una especie de array. En la figura 2.23

    podemos ver un diagrama en el que un mismo evento lo intercep-

    tan tres clientes, cuando decimos que un cliente intercepta un even-

    to, realmente nos referimos a que hay un mtodo que lo intercepta

    y el evento realmente guarda la direccin de memoria de ese mto-

    do.

    Figura 2.23 - El evento guarda la di-

    reccin de memoria de cada mtodoque lo intercepta

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    12/100

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    13/100

    Visual Studio 2005 113

    3. Cuando se produce el evento, (por medio deRaiseEvent), realmen-te estamos llamando al delegado para que acceda a todas las "di-

    recciones" de memoria que tiene almacenadas y ejecute el cdigo

    que hayamos definido en cada uno de esos mtodos.

    Como podemos comprobar, y para decirlo de forma simple, un delegado

    realmente es la forma que tiene .NET para definir un puntero. La diferencia

    principal es que los punteros, (no vamos a entrar en demasiados detalles so-

    bre los punteros, ya que no estamos en un curso de C/C++), no tienen forma

    de comprobar si estn accediendo a una direccin de memoria correcta o,

    para decirlo de otra forma, a una direccin de memoria "adecuada". En

    .NET, los "punteros" solo se pueden usar mediante delegados, y stos sola-

    mente pueden acceder a direcciones de memoria que tienen la misma "fir-

    ma" con el que se han definido. Para que lo entendamos un poco mejor, escomo si los delegados solo pudieran acceder a sitios en la memoria que con-

    tienen un mtodo con la misma "interfaz" que el que ha definido el propio

    delegado.

    Seguramente es difcil de entender, y la principal razn es que hemos empe-

    zado la casa por el techo. Por tanto, veamos a continuacin una definicin

    "formal" de qu es un delegado y veamos varios ejemplos para que lo com-

    prendamos mejor.

    Definicin for mal de delegado

    Veamos que nos dice la documentacin de Visual Basic 2005 sobre los de-

    legados:

    "Un delegado es una clase que puede contener una referencia a un

    mtodo. A diferencia de otras clases, los delegados tienen un pro-

    totipo (firma) y pueden guardar referencias nicamente a los m-

    todos que coinciden con su prototipo."

    Esta definicin, al menos en lo que respecta a su relacin con los eventos,

    viene a decir que los delegados definen la forma en que debemos declarar

    los mtodos que queramos usar para interceptar un evento.

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    14/100

    Cursos114

    Si seguimos buscando ms informacin sobre los delegados en la documen-

    tacin de Visual Basic 2005, tambin nos encontramos con esta definicin:

    "Los delegados habilitan escenarios que en otros lenguajes se han

    resuelto con punteros a funcin. No obstante, a diferencia de los

    punteros a funcin, los delegados estn orientados a objetos y

    proporcionan seguridad de tipos."

    Que es lo que comentamos en la seccin anterior: los delegados nos facili-

    tan el acceso a "punteros" (o direcciones de memoria) de funciones, pero

    hecho de una forma "controlada", en este caso por el propio .NET frame-

    work.

    Por ejemplo, el evento DatosCambiados definido anteriormente, tambinlo podemos definir de la siguiente forma:

    Es decir, el mtodo que intercepte este evento debe ser del tipo Sub y no re-

    cibir ningn parmetro.

    Si nuestro evento utiliza, por ejemplo, un parmetro de tipo String, la defi-

    nicin del delegado quedara de la siguiente forma:

    Y la definicin del evento quedara de esta otra:

    Como vemos al definir el evento ya no tenemos que indicar si recibe o no

    algn parmetro, ya que esa definicin la hemos hecho en el delegado.

    Si nos decidimos a definir este evento de la forma "normal" de Visual Ba-

    sic, lo haramos as:

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    15/100

    Visual Studio 2005 115

    Como podemos comprobar, Visual Basic 2005 nos permite definir los even-

    tos de dos formas distintas: definiendo un delegado y un evento que sea deltipo de ese delegado o definiendo el evento con los argumentos que debe-

    mos usar.

    Declaremos como declaremos los eventos, los podemos seguir usando de la

    misma forma, tanto para producirlo mediante RaiseEventcomo para definir

    el mtodo que reciba ese evento.

    Utilizar un delegado par a acceder a un mtodo

    Ahora veamos brevemente cmo usar los delegados, en este caso sin nece-

    sidad de que defina un evento.

    Como hemos comentado, un delegado realmente es una clase que puede

    contener una referencia a un mtodo, adems define el prototipo del mtodo

    que podemos usar como referencia. Sabiendo esto, podemos declarar una

    variable del tipo del delegado y por medio de esa variable acceder al mto-

    do que indiquemos, siempre que ese mtodo tenga la misma "firma" que el

    delegado. Parece complicado verdad? Y no solo lo parece, es que realmen-te lo es. Comprobemos esta "complicacin" por medio de un ejemplo. En

    este cdigo, que iremos mostrando poco a poco, vamos a definir un delega-

    do, un mtodo con la misma firma para que podamos usarlo desde una va-

    riable definida con el mismo tipo del delegado.

    Definimos un delegado de tipo Sub que recibe un valor de tipo cadena:

    Definimos un mtodo con la misma firma del delegado:

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    16/100

    Cursos116

    Ahora vamos a declarar una variable para que acceda a ese mtodo.

    Para ello debemos declararla con el mismo tipo del delegado:

    La variable saludando es del mismo tipo que el delegado Saludo. La cues-

    tin es cmo o que asignamos a esta variable?

    Primer intento: Como hemos comentado, los delegados realmente son cla-

    ses, por tanto podemos usar New Saludo y, segn parece, deberamos pa-sarle un nombre como argumento. Algo as:

    Pero esto no funciona, entre otras cosas, porque hemos comentado que un

    delegado contiene (o puede contener) una referencia a un mtodo, y "Pepe"

    no es un mtodo ni una referencia a un mtodo.

    Segundo intento: Por lgica y, sobre todo, por sentido comn, mxime

    cuando hemos declarado un mtodo con la misma "firma" que el delegado,

    deberamos pensar que lo que debemos pasar a esa variable es el mtodo, ya

    que un delegado puede contener una referencia a un mtodo.

    Esto tampoco funciona, seguramente porque le falta el parmetro?

    Pues tampoco.

    Para usar un delegado debemos indicarle la direccin de memoria de un m-

    todo, a eso se refiere la definicin que vimos antes, una referencia a un m-

    todo no es ni ms ni menos que la direccin de memoria de ese mtodo. Y

    en Visual Basic, desde la versin 5.0, tenemos una instruccin para obtener

    la direccin de memoria de cualquier mtodo: AddressOf. Por tanto, para

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    17/100

    Visual Studio 2005 117

    indicarle al delegado dnde est ese mtodo tendremos que usar cualquiera

    de estas dos formas:

    Es decir, le pasamos al constructor la direccin de memoria del mtodo que quere-

    mos "asociar" al delegado.

    En Visual Basic esa misma asignacin la podemos simplificar de esta forma:

    Ya que el compilador "sabe" que saludando es una variable de tipo delegado

    y lo que esa variable puede contener es una referencia a un mtodo que ten-

    ga la misma firma que la definicin del delegado, en nuestro caso, que sea

    de tipo Sub y reciba una cadena.

    Si queremos, tambin podemos declarar la variable y asignarle directamente

    el mtodo al que har referencia:

    Y ahora... cmo podemos usar esa variable?

    La variable saludando realmente est apuntando a un mtodo y ese mtodorecibe un valor de tipo cadena, por tanto si queremos llamar a ese mtodo

    (para que se ejecute el cdigo que contiene), tendremos que indicarle el va-

    lor del argumento, sabiendo esto, la llamada podra ser de esta forma:

    Y efectivamente, as se mostrara por la consola el saludo (Hola) y el valor

    indicado como argumento.

    Realmente lo que hacemos con esa llamada es acceder al mtodo al que

    apunta la variable y como ese mtodo recibe un parmetro, debemos pasr-

    selo, en cuanto lo hacemos, el runtime de .NET se encarga de localizar el

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    18/100

    Cursos118

    mtodo y pasarle el argumento, de forma que se ejecute de la misma forma

    que si lo llamsemos directamente:

    Con la diferencia de que la variable "saludando" no tiene porqu saber aqu mtodo est llamando, y lo ms importante, no sabe dnde est definido

    ese mtodo, solo sabe que el mtodo recibe un parmetro de tipo cadena y

    aparte de esa informacin, no tiene porqu saber nada ms.

    As es como funcionan los eventos, un evento solo tiene la direccin de

    memoria de un mtodo, ese mtodo recibe los mismos parmetros que los

    definidos por el evento (realmente por el delegado), cuando producimos elevento con RaiseEventes como si llamramos a cada uno de los mtodos

    que se han ido agregando al delegado, si es que se ha agregado alguno, ya

    que en caso de que no haya ningn mtodo asociado a ese evento, ste no se

    producir, por la sencilla razn de que no habr ningn cdigo al que lla-

    mar.

    Realmente es complicado y, salvo que lo necesitemos para casos especiales,

    no ser muy habitual que usemos los delegados de esta forma, aunque no

    est de ms saberlo, sobre todo si de as comprendemos mejor cmo fun-

    cionan los eventos.

    Definir y pr oducir eventos en una clase

    En la leccin anterior hemos visto cmo interceptar eventos, en esta vere-

    mos cmo definirlos en nuestras clases y cmo producirlos, para que el

    cliente que los intercepte sepa que algo ha ocurrido en nuestra clase.

    Definir eventos en una clase

    Para definir un evento en una clase usamos la instruccinEventseguida del

    nombre del evento y opcionalmente indicamos los parmetros que dicho

    evento recibir. En el siguiente trozo de cdigo definimos un evento llama-

    do DatosModificados que no utiliza ningn argumento:

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    19/100

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    20/100

    Cursos120

    declaradas con WithEvents se muestran en la lista desplegable de la ventana

    de cdigo, tal como podemos apreciar en la figura 2.22:

    Figura 2.22 Listas de objetos que producen eventos

    Y de esta forma podemos seleccionar la variable y posteriormente elegir el

    evento a interceptar, tal como vimos en la figura 2.18.

    Asociar eventos mediante AddHandler

    Pero Visual Basic 2005 tambin proporciona otra forma de asociar un pro-

    cedimiento con un evento. Aunque en este caso es algo ms manual que to-

    do lo que hemos visto y, de alguna forma est ms ligado con los delegados,

    y como los delegados los veremos dentro de poco, ahora solamente mostra-

    remos la forma de hacerlo y despus veremos con algo de ms detalle cmo

    funciona.

    La forma de de asociar eventos con su correspondiente mtodo es por medio

    de la instruccin AddHandler. A esta instruccin le pasamos dos argumen-tos, el primero es el evento a asociar y el segundo es el procedimiento que

    usaremos cuando se produzca dicho evento. Este ltimo parmetro tendre-

    mos que indicarlo mediante la instruccin AddressOf, que sirve para pasar

    una referencia a una funcin o procedimiento, y precisamente eso es lo que

    queremos hacer: indicarle que procedimiento debe usar cuando se produzca

    el evento:

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    21/100

    Visual Studio 2005 121

    En este caso, el uso deAddressOfes una forma "fcil" que tiene Visual Ba-

    sic 2005 de asociar un procedimiento de evento con el evento. Aunque porel fondo, (y sin que nos enteremos), realmente lo que estamos usando es un

    constructor a un delegado.

    La ventaja de usar esta forma de asociar eventos con el procedimiento, es

    que podemos hacerlo con variables que no estn declaradas con WithEvents,

    realmente esta sera la nica forma de asociar un procedimiento de evento

    con una variable que no hemos declarado con WithEvents.

    Desasociar eventos mediante RemoveHandler

    De la misma forma que por medio deAddHandlerpodemos asociar un pro-

    cedimiento con un evento, usando la instruccin RemoveHandler podemos

    hacer el proceso contrario: desligar un procedimiento del evento al que pre-

    viamente estaba asociado. Los parmetros a usar con RemoveHandlerson

    los mismos que conAddHandler.

    Podemos usar RemoveHandlertanto con variables y eventos definidos con

    AddHandlercomo con variables declaradas con WithEvents y ligadas pormedio deHandles. Esto ltimo es as porque cuando nosotros definimos los

    procedimientos de eventos usando la instruccin Handles, es el propio Vi-

    sual Basic el que internamente utiliza AddHandlerpara ligar ese procedi-

    miento con el evento en cuestin. Saber esto nos facilitar comprender me-

    jor cmo funciona la declaracin de eventos mediante la instruccin Cus-

    tom, aunque de este detalle nos ocuparemos despus de ver que son los de-

    legados.

    Ver vdeos 30 Delegados 2 y 31 Delegados 3.

    Definir un evento bien infor mado con Custom Event

    Para terminar con esta leccin sobre los eventos y los delegados, vamos a

    ver otra forma de definir un evento. Esta no es exclusiva de Visual Basic

    2005, ya que el lenguaje C#, compaero inseparable en los entornos de Vi-

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    22/100

    Cursos122

    sual Studio 2005, tambin tiene esta caracterstica, pero aunque pueda pare-

    cer extrao, es menos potente que la de VB2005; por medio de esta declara-

    cin, tal como indicamos en el ttulo de la seccin, tendremos mayor infor-

    macin sobre cmo se declara el evento, cmo se destruye e incluso cmo

    se produce, es lo que la documentacin de Visual Basic llama evento perso-

    nalizado (Custom Event).

    Cuando declaramos un evento usando la instruccin Custom estamos defi-

    niendo tres bloques de cdigo que nos permite interceptar el momento en

    que se produce cualquiera de las tres acciones posibles con un evento:

    1. Cuando se "liga" el evento con un mtodo, ya sea por medio deAddHandlero medianteHandles

    2. Cuando se desliga el evento de un mtodo, por medio deRemove-Handler

    3. Cuando se produce el evento, al llamar aRaiseEventPara declarar este tipo de evento, siempre debemos hacerlo por medio de un

    delegado.

    Veamos un ejemplo de una declaracin de un evento usando Custom Event:

    Como podemos apreciar, debemos definir un delegado con la "firma" del

    mtodo a usar con el evento. Despus definimos el evento por medio de las

    instrucciones Custom Event, utilizando el mismo formato que al definir un

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    23/100

    Visual Studio 2005 123

    evento con un delegado. Dentro de la definicin tenemos tres bloques, cada

    uno de los cuales realizar la accin que ya hemos indicado en la lista nu-

    merada.

    Nota.- Los eventos Custom Event solamente podemos definirlos e inter-

    ceptarlos en el mismo ensamblado.

    Atr ibutos

    Esta es la definicin que nos da la ayuda de Visual Basic sobre lo que es un

    atributo.

    Los atributos son etiquetas descriptivas que proporcionan infor-macin adicional sobre elementos de programacin como tipos,

    campos, mtodos y propiedades. Otras aplicaciones, como el com-

    pilador de Visual Basic, pueden hacer referencia a la informacin

    adicional en atributos para determinar cmo pueden utilizarse es-

    tos elementos.

    En esta leccin veremos algunos ejemplos de cmo usarlos en nuestras pro-

    pias aplicaciones y, aunque sea de forma general, cmo usar y aplicar algu-

    nos de los atributos definidos en el propio .NET Framework, al menos losque ms directamente nos pueden interesar a los desarrolladores de Visual

    Basic.

    Atr ibutos

    Como hemos comentado en la introduccin, los atributos son etiquetas que

    podemos aplicar a nuestro cdigo para que el compilador y, por extensin,

    el propio .NET Framework los pueda usar para realizar ciertas tareas o para

    obtener informacin extra sobre nuestro cdigo.

    De hecho en cualquier aplicacin que creemos con Visual Basic 2005 esta-

    remos tratando con atributos, aunque nosotros ni nos enteremos, ya que el

    propio compilador los utiliza para generar los metadatos del ensamblado, es

    decir, la informacin sobre todo lo que contiene el ejecutable o librera que

    hemos creado con Visual Basic 2005.

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    24/100

    Cursos124

    Por otra parte, el uso de los atributos nos sirve para ofrecer cierta funciona-

    lidad extra a nuestro cdigo, por ejemplo, cuando creamos nuestros propios

    controles, mediante atributos podemos indicarle al diseador de formularios

    si debe mostrar ciertos miembros del control en la ventana de propiedades,

    etc.

    Atr ibutos par a r epresentar infor macin de nuestr a aplicacin

    De forma ms genrica podemos usar los atributos para indicar ciertas ca-

    ractersticas de nuestra aplicacin, por ejemplo, el ttulo, la versin, etc. To-

    dos estos atributos los indicaremos como "caractersticas" de nuestra aplica-

    cin, y lo haremos sin ser demasiados conscientes de que realmente estamos

    usando atributos, ya que el propio Visual Basic los controla mediante pro-

    piedades de la aplicacin.

    Por ejemplo, si mostramos la ventana de propiedades de nuestro proyecto,

    ver figura 2.24:

    Figura 2.24 Propiedades de la aplicacin

    Tendremos acceso a las propiedades de la aplicacin, como el nombre del

    ensamblado, el espacio de nombres, etc. Si queremos agregar informacin

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    25/100

    Visual Studio 2005 125

    extra, como la versin, el copyright, etc. podemos presionar el botn "As-

    sembly Information", al hacerlo, se mostrar una nueva ventana en la que

    podemos escribir esa informacin, tal como mostramos en la figura 2.25:

    Figura 2.25 Informacin del ensamblado

    Esa informacin realmente est definida en un fichero del proyecto llamadoAssembluInfo.vb, el cual de forma predeterminada est oculto, si lo mos-

    tramos, veremos que esa informacin la contiene en formato de atributos.

    Parte del cdigo de ese fichero lo podemos ver en la figura 2.26:

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    26/100

    Cursos126

    Figura 2.26 Contenido del fichero AssemblyInfo

    En este cdigo podemos resaltar tres cosas: La primera es que tenemos una

    importacin al espacio de nombres System.Reflection, este espacio de

    nombres contiene la definicin de las clases/atributos utilizados para indicar

    los atributos de la aplicacin, como el ttulo, etc. La segunda es la forma deusar los atributos, estos deben ir encerrados entre signos de menor y mayor:

    . La tercera es que, en este caso, los atri-butos estn definidos a nivel de ensamblado, para ellos se aade la instruc-

    cin Assembly: al atributo. Como veremos a continuacin, los atributos

    tambin pueden definirse a nivel local, es decir, solo aplicable al elemento

    en el que se utiliza, por ejemplo, una clase o un mtodo, etc.

    Mostr ar los ficher os ocultos del pr oyecto

    Como acabamos de comentar, el fichero AssemblyInfo.vb que es el que

    contiene la informacin sobre la aplicacin (o ensamblado), est oculto. Pa-

    ra mostrar los ficheros ocultos, debemos hacer lo siguiente:

    En la ventana del explorador de soluciones, presionamos el segundo botn,

    (si pasamos el cursor por encima, mostrar un mensaje que indica "Mostrar

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    27/100

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    28/100

    Cursos128

    Atr ibutos par ticular es a las clases o miembr os de las clases

    Estos atributos solo se aplican a la clase o al miembro de la clase que crea-

    mos conveniente, el formato es parecido a los atributos globales, ya que seutilizan los signos de menor y mayor para encerrarlo, con la diferencia de

    que en este tipo de atributos no debemos usar Assembly:, ya que esta ins-

    truccin indica que el atributo es a nivel del ensamblado.

    Cuando aplicamos un atributo "particular", este debe estar en la misma lnea

    del elemento al que se aplica, aunque si queremos darle mayor legibilidad al

    cdigo podemos usar un guin bajo para que el cdigo contine en otra l-

    nea:

    Atr ibutos personalizados

    Adems de los atributos que ya estn predefinidos en el propio .NET o Vi-

    sual Basic, podemos crear nuestros propios atributos, de forma que en tiem-

    po de ejecucin podamos acceder a ellos mediante las clases del espacio de

    nombresReflection, aunque debido a que este tema se sale un poco de la in-

    tencin de este curso, simplemente indicar que los atributos personalizados

    son clases que se derivan de la clase System.Attribute y que podemos definir

    las propiedades que creamos conveniente utilizar en ese atributo para indi-

    car cierta informacin a la que podemos acceder en tiempo de ejecucin.

    En el siguiente cdigo tenemos la declaracin de una clase que se utilizar

    como atributo personalizado, notamos que, por definicin las clases para

    usarlas como atributos deben terminar con la palabra Attribute despus del

    nombre "real" de la clase, que como veremos en el cdigo que utiliza ese

    atributo, esa "extensin" al nombre de la clase no se utiliza.

    Veamos primero el cdigo del atributo personalizado:

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    29/100

    Visual Studio 2005 129

    Para usar este atributo lo podemos hacer de la siguiente forma:

    Nota.- Cuando utilizamos el atributo, en el constructor que de forma pre-

    determinada crea Visual Basic, los parmetros se indican por el or-

    den alfabtico de las propiedades, pero que nosotros podemos alte-

    rar usando directamente los nombres de las propiedades, tal comopodemos ver en el cdigo de ejemplo anterior.

    Acceder a los atr ibutos per sonalizados en tiempo de ejecucin

    Para acceder a los atributos personalizados podemos hacer algo como esto,

    (suponiendo que tenemos la clase AutorAttribute y una clase llamada

    PruebaAtributos a la que hemos aplicado ese atributo personalizado):

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    30/100

    Cursos130

    Atr ibutos especficos de Visual Basic

    Visual Basic utiliza una serie de atributos para indicar ciertas caractersticas

    de nuestro cdigo, en particular son tres:

    COMClassAttribute Este atributo se utiliza para simplificar lacreacin de componentes COM desde Visual Basic.

    VBFixedStringAttribute Este atributo se utiliza para crear cade-nas de longitud fija en Visual Basic 2005. Habitualmente se aplica

    a campos o miembros de una estructura, principalmente cuando

    queremos acceder al API de Windows o cuando queremos usar esa

    estructura para guardar informacin en un fichero, pero utilizando

    una cantidad fija de caracteres.

    VBFixedArrayAttribute Este atributo, al igual que el anterior, lopodremos usar para declarar arrays de tamao fijo, al menos si las

    declaramos en una estructura, ya que por defecto, los arrays de Vi-sual Basic son de tamao variable.

    Mar car cier tos miembr os de una clase como obsoletos

    En ocasiones nos encontraremos que escribimos cierto cdigo que poste-

    riormente no queremos que se utilice, por ejemplo porque hemos creado una

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    31/100

    Visual Studio 2005 131

    versin optimizada. Si ese cdigo lo hemos declarado en una interfaz, no

    deberamos eliminarlo de ella, ya que as romperamos el contrato contrado

    por las clases que implementan esa interfaz. En estos casos nos puede venir

    muy bien el uso del atributo , ya que as podemos informar al

    usuario de que ese atributo no debera usarlo. En el constructor de este atri-

    buto podemos indicar la cadena que se mostrar al usuario. En el siguiente

    cdigo se declara un mtodo con el atributo Obsolete:

    Si trabajamos con el IDE de Visual Basic, ese mensaje se mostrar al com-pilar o utilizar los atributos marcados como obsoletos, tal como podemos

    apreciar en la figura 2.28:

    Figura 2.28 Mensaje de que un mtodo est obsoleto

    Desar r ollo de aplicaciones Windows

    En este mdulo, conoceremos las partes generales y ms importantes del en-

    torno de desarrollo rpido Visual Studio 2005 para la programacin de apli-

    caciones con este lenguaje de la familia .NET.

    Veremos las partes principales del entorno, tambin veremos como desarro-llar nuestros propios controles Windows, aprenderemos a trabajar con im-

    genes y grficos con Visual Basic y finalmente, conoceremos como desple-

    gar nuestras aplicaciones desarrolladas en Visual Basic 2005.

    FAQ:

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    32/100

    Cursos132

    Qu tipo de aplicaciones puedo desarrollar si estoy utilizando Visual Basic

    2005 Express?

    Podr desarrollar principalmente,Aplicaciones para Windows,Bibliotecas

    de Clases y Aplicaciones de Consola. Adems, podr aadir sus propias

    plantillas para obtener un mayor rendimiento en el desarrollo de aplicacio-

    nes. Si su inters es el desarrollo de aplicaciones Web, puede utilizar Vi-

    sual Web Developer 2005 Express.

    Uso del diseador de Visual Basic

    Cuando nos encontramos con Visual Studio 2005 por primera vez, saltan a

    la vista, algunos de los cambios ms importantes de este novedoso entornode desarrollo de aplicaciones Windows.

    Para un desarrollador, familiarizarse con el entorno de Visual Studio 2005

    es una tarea que no debe entraar una complejidad excesivamente grande.

    Como nos ocurre a todos los que nos encontramos delante de un nuevo en-

    torno de trabajo, lo nico que se requiere es constancia y prctica, mucha

    prctica. Sin embargo, si usted es ya un desarrollador habitual de otros en-

    tornos de desarrollo, notar que sus avances van a ser significativos en muy

    poco tiempo.

    Nota.- Si est utilizando Visual Basic 2005 Express para seguir este curso

    debe saber que este entorno est especializado en desarrollar apli-

    caciones Windows con Visual Basic 2005, aunque podr usar con-

    troles y libreras escritas en otros lenguajes de la plataforma .NET.

    Ver vdeo 32 Uso del diseador de Visual Basic.

    Cuadr o de her r amientas

    El cuadro o barra de herramientas de Visual Studio 2005, nos permite utili-

    zar los distintos componentes que .NET Framework pone a nuestra disposi-

    cin, en Visual Studio 2005 tenemos una gran cantidad de controles dis-

    puestos en diferentes categoras.

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    33/100

    Visual Studio 2005 133

    En la figura 1 podemos ver la barra de herramientas de Visual Studio 2005.

    Figura 1 Visual Studio 2005

    El Cuadro de herramientas, lo locali-zar en la parte izquierda del entorno

    Visual Studio 2005.

    Cuando iniciamos un nuevo proyecto

    con Visual Studio 2005, el cuadro de

    herramientas queda rellenado con los

    controles que podemos utilizar en el

    proyecto. Si abrimos un formulario

    Windows, los controles quedan habili-tados para que los podamos insertar en el formulario Windows. En la figura

    2 se muestra la barra de herramientas con los controles preparados para ser

    insertados en el formulario Windows.

    Figura 2 Toolbox de Visual Studio 2005

    con controles Windows preparados paraser insertados en el formulario Windows

    Nota.- Para insertar un control en

    un formulario Windows, se requie-re que el formulario Windows so-

    bre el que deseamos insertar un

    control, est abierto. Una vez que

    est abierto, bastar con realizar

    una de las tres siguientes acciones

    para insertar un control al formulario:

    Hacer doble clic sobre un control del cuadro de herra-mientas

    Hacer clic sobre un control del cuadro de herramientas, ysin soltar el botn del mouse, arrastrarlo sobre el formu-

    lario

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    34/100

    Cursos134

    Hacer clic sobre un control del cuadro de herramientas, yluego hacer clic sobre el formulario y arrastrar para

    marcar una zona que cubrir nuestro control y soltar el

    ratn

    El control quedar entonces insertado dentro del formulario.

    Ver vdeo 33 Cuadro de herramientas.

    Explor ador de base de datos

    Si ha sido lo suficientemente observador cuando se explicaban los detalles

    del cuadro o barra de herramientas, y ha prestado especial atencin a las fi-guras o a las ventanas del entorno de desarrollo de Visual Studio 2005, qui-

    zs haya notado que en la parte izquierda adems de la solapa cuadro de

    herramientas, aparece otra solapa de nombre explorador de base de datos.

    Desde esta solapa, un programador puede acceder a diferentes recursos del

    sistema. El principal y ms importante recurso, es el que tiene que ver con

    las conexiones con bases de datos, ya sean Microsoft Access, Microsoft

    SQL Server o cualquier otra fuente de datos.

    En la figura 1 puede observar la solapaExplorador de base de datos exten-

    dida con parte de sus opciones.

    Figura 1 La solapa del Explorador de base de datos desplegada de Visual Studio 2005

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    35/100

    Visual Studio 2005 135

    Conectando con una base de datos Micr osoft Access a tr avs de OLE DB

    Para muestra un botn, y dado el carcter prctico de este tutorial, aprender

    a crear una conexin con cualquier base de datos, en nuestro caso de ejem-plo una base de datos Microsoft Access, para poder utilizarla fcilmente en

    nuestra aplicacin Windows.

    Haga clic sobre el botn representado por la siguiente imagen . En este

    instante, se abrir una nueva ventana como la que se muestra en la figura 2.

    ? Figura 2 Ventana Agregar conexin,

    para establecer las propiedades de co-nexin de una fuente de datos

    Por defecto, la ventana Agregar co-

    nexin queda preparada para esta-

    blecer una conexin con una fuente

    de datos de origen de datos OLE

    DB, por lo que si nuestra intencin

    es establecer una conexin con otra

    fuente de datos, entonces deberemos

    hacer clic sobre el botn Cambiar...

    que se indica en la figura 3.

    Figura 3 Botn Cambiar para seleccio-

    nar otro proveedor de origen de datos ?

    De esta manera, podemos indicar el

    origen de acceso a datos que necesi-

    tamos para establecer la conexin

    con nuestra fuente de datos, y que en nuestro ejemplo, no ser un proveedorde SQL Server, por lo que el origen de datos OLE DB es vlido para noso-

    tros.

    Una vez que hemos hecho clic sobre el botn Cambiar..., nos aseguramos

    por lo tanto, que nuestro origen de datos es base de datos de Microsoft Ac-

    cess (OLE DB), como se indica en la figura 4.

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    36/100

    Cursos136

    Figura 4 Ventana de seleccin del pro-veedor u origen de datos

    FAQ:

    Puedo utilizar el proveedor OLEDB en lugar del proveedor de SQL

    Server para conectar con una base

    de datos SQL Server? Con OLE DB,

    puede acceder a fuentes de datos

    SQL Server u otras fuentes de datos

    como Microsoft Access, sin embar-

    go, si utiliza SQL Server 7.0, SQL

    Server 2000 SQL Server 2005, se

    recomienda el uso del proveedor deSQL Server, que es un proveedor de

    acceso a datos nativo que aumenta el rendimiento de nuestras aplicaciones

    con SQL Server. Slo si utiliza una versin de SQL Server anterior a SQL

    Server 7.0, deber utilizar necesariamente el proveedor de acceso a datos

    OLE DB.

    Una vez que hemos seleccionado el proveedor de acceso a datos, nos cen-

    traremos en la opcin Nombre de archivo base de datos como se muestra

    en la figura 5.

    Figura 5 En este lugar indicaremos el fi-chero de base de datos con el que establece-

    remos la conexin

    Para agregar el fichero de base de da-

    tos a la conexin, presionaremos el

    botn Examinar... y seleccionaremos

    el fichero de base de datos de nuestrodisco duro.

    De esta manera, la base de datos que-

    dar indicada en la conexin y tan s-

    lo deberemos probar nuestra conexin

    pulsando el botn Probar conexin como se indica en la figura 6.

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    37/100

    Visual Studio 2005 137

    Figura 6 Es recomendable probar la co-nexin antes de agregarla al entorno

    Si la prueba de conexin se ha reali-

    zado satisfactoriamente, recibiremosun mensaje en pantalla afirmativo

    como el que se indica en la figura 7.

    ? Figura 7 Prueba de la conexin reali-zada con xito.

    A tener en cuenta: En este ejemplo, la conexin con la base de datos Mi-crosoft Access, no tiene ningn tipo de usuario y con-

    trasea. Tenga en cuenta que en la parte identificada

    como Conexin con la base de datos, podramos indi-

    car el usuario y contrasea si fuera necesario.

    En este punto, tan slo deberemos presionar sobre el botn Aceptar paraque la base de datos con la que hemos establecido la conexin, quede ahora

    insertada en la ventana del Explorador de base de datos como se muestra

    en la figura 8.

    Figura 8 Base de datos Microsoft Accessinsertada en la ventana del Explorador debase de datos

    Advertencia! Tener demasiadas

    conexiones activas en el entorno oconfiguradas en l, puede incidir ne-

    gativamente en el rendimiento de Vi-

    sual Studio 2005 cuando se trabaja

    con l. Tenga configuradas solamen-

    te, aquellas conexiones que va a uti-

    lizar, o aquellas conexiones de uso

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    38/100

    Cursos138

    ms habitual y frecuente.

    Ver vdeo 34 Explorador de base de datos.

    Explor ador de soluciones

    El Explorador de soluciones lo podemos encontrar en la parte derecha de

    nuestro entorno de desarrollo.

    Una solucin se compone de proyectos y stos, de recursos y objetos. Por lo

    general, una solucin contendr un proyecto, pero podemos encontrarnos

    con ms de un proyecto dentro de una misma solucin. Sin embargo, estos

    conceptos son muy sencillos de comprender y controlar, y para nada debehacernos pensar que esto es algo complejo que nos costar mucho tiempo

    dominar.

    En la figura 1, podemos observar el explorador de soluciones de Visual Stu-

    dio 2005.

    Figura 1 La opcin Explorador de solu-

    ciones desplegada en Visual Studio 2005

    Si queremos aadir un nuevo formu-lario al proyecto, lo haremos presio-

    nando con el botn secundario en

    cualquier parte de la ventana del ex-

    plorador de soluciones, pero si esa

    pulsacin la hacemos en alguno de

    los objetos que contiene el proyecto,

    no podremos hacerlo, ya que el IDE

    de Visual Studio 2005 muestra un

    men diferente segn el objeto pre-sionado, por ejemplo si queremos

    aadir un nuevo proyecto, podemos

    hacerlo presionando con el botn

    secundario del mouse sobre la "so-

    lucin".

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    39/100

    Visual Studio 2005 139

    Nota.- Para abrir un recurso de la solucin, basta con situarnos en el re-

    curso determinado, por ejemplo un formulario Windows de nom-

    bre Form1.vb y hacer doble clic sobre l. El recurso se abrir au-

    tomticamente en Visual Studio 2005. Adems, en Visual Studio

    2005 sabremos en todo momento sobre qu recurso estamos traba-

    jando en un momento dado.

    Ver vdeo Explorador de soluciones.

    Pr opiedades

    La ventana de propiedades la encontraremos en la parte derecha y ms abajo

    de la ventanaExplorador de soluciones en nuestro entorno de desarrollo.

    Esta ventana nos permitir acceder a las propiedades de los objetos inserta-

    dos en nuestros formularios Windows, como se muestra en la figura 1.

    Figura 1 Ventana de Propiedades de Vi-sual Studio 2005Para acceder a las propiedades de un

    determinado control, deberemos se-

    leccionar el control en el formulario

    Windows y acudir a la ventanaPro-

    piedades, o bien, seleccionar el con-

    trol en el formulario Windows y pre-

    sionar la tecla F4.

    Ver vdeo 36 Propiedades.

    Mens y bar r as de botones

    Respecto a los mens y barra de bo-

    tones, son muchas las opciones que

    tenemos disponibles, tal como po-

    demos comprobar en la figura 1. Las barras de botones son configurables,

    adems de que podemos elegir las que queremos que se muestren de forma

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    40/100

    Cursos140

    permanente en el entorno de desarrollo de Visual Studio 2005. Algunas de

    las barras de botones se mostrarn automticamente segn las tareas que es-

    temos realizando, por ejemplo, cuando estamos en modo depuracin o dise-

    ando las tablas de una base de datos. Con el contenido de los mens ocurre

    lo mismo, segn el elemento que tengamos seleccionado se mostrarn cier-

    tas opciones que sea relevantes para ese elemento del IDE de Visual Studio

    2005.

    Figura 1 Los mens y barras de botones de Visual Studio 2005

    Algunas de las opciones que tenemos en los mens tambin las podemos

    conseguir usando los mens contextuales (el mostrado al presionar con el

    botn secundario del mouse), y como es de esperar, tambin sern diferen-

    tes segn el elemento sobre el que hemos presionado.

    Por ejemplo, para configurar el proyecto actual, podemos elegir la opcin

    Propiedades del men Proyecto o bien presionar con el botn secundario

    del mouse sobre el proyecto mostrado en el Explorador de soluciones.

    Al seleccionar las propiedades del proyecto, tendremos una nueva ventana

    desde la que podemos configurar algunas de las caractersticas de nuestro

    proyecto. En la figura 2, tenemos esa ventana de propiedades del proyecto,

    en la que podemos apreciar que est dividida segn el tipo de configuracin

    que queremos realizar, en este caso concreto las opciones de generacin o

    compilacin del proyecto.

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    41/100

    Visual Studio 2005 141

    Figura 2 Propiedades del proyecto sobre la que se trabaja en Visual Basic 2005

    Como vemos en la figura 2, existen sin embargo multitud de opciones y

    apartados diferentes relacionados todos ellos con nuestra solucin. Otro de

    los apartados destacables, es el apartado denominado Publicar.

    An as, ste es el corazn o parte fundamental que debemos controlar a la

    hora de desarrollar una aplicacin o a la hora de gestionar una solucin,

    porque dentro de esta ventana, se resume buena parte de los mens y barra

    de botones del entorno de Visual Studio 2005.

    De todos los modos, tendremos la oportunidad de ver ms adelante, algunos

    usos de algunas de las opciones de la barra de botones del entorno.

    Ver vdeo 37 Mens y barras de botones.

    Otr as consider aciones

    El desarrollador que haya utilizado previamente otros entornos de desarrollodistinto a los de la familia de Visual Studio .NET, encontrar muy intere-

    santes algunos de los cambios incorporados en Visual Studio 2005. Al prin-

    cipio, quizs se encuentre un poco desorientado, pero rpidamente y gracias

    a su experiencia en otros entornos de desarrollo, se acostumbrar al cambio.

    Entre algunos de estos cambios, destacara los siguientes:

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    42/100

    Cursos142

    En Visual Studio 2005, acceder a los objetos de nuestra aplicacines mucho ms fcil. Dentro del entorno, observaremos que se van

    creando diferentes solapas que nos permite acceder y localizar los

    recursos con los que estamos trabajando de forma rpida. En la fi-

    gura 1 podemos observar justamente esto que comento.

    Figura 1 Solapas de los objetos abiertos en Visual Studio 2005

    Visual Basic 2005 permite, hacer un Stop & Go (editar y conti-nuar), de nuestras aplicaciones, es decir, pausar la ejecucin de una

    aplicacin en modo depuracin y modificar los valores o propieda-

    des que deseemos y continuar ejecutndola. Esta opcin que los

    programadores de Visual Basic 6 utilizan con mucha frecuencia en

    el desarrollo de sus aplicaciones, se ha mantenido en Visual Basic

    2005, pero no en Visual Studio .NET 2002 y Visual Studio .NET

    2003. Si por alguna razn, debe trabajar con alguno de estos entor-

    nos, debe saber que esta opcin no est disponible para las versio-

    nes comentadas.

    Otra caracterstica que debemos conocer de nuestro entorno de de-sarrollo, es la capacidad de anclar o fijar una ventana de las comen-

    tadas anteriormente o de permitir que se haga visible cuando acer-

    camos el puntero del mouse sobre ella. Esta opcin es la que puede

    verse en la figura 2.

    Figura 2 Opcin de ocultar o mostrar la ventana seleccionada en Visual Stu-dio 2005

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    43/100

    Visual Studio 2005 143

    Ntese que al presionar el icono indicado en la figura 2, haremos

    que esta ventana quede fija en el entorno de desarrollo. Cuando

    pulsamos este icono, la ventana queda fija y queda representado

    por un icono como el que se muestra en la figura 3.

    Figura 3 Icono para ocultar o mostrar la ventana seleccionada cuando se en-cuentra en modo anclado

    Algo que oculta el entorno de Visual Studio 2005 por defecto, son las de-nominadas clases parciales. Se trata de una nueva caracterstica aadida a.NET 2.0 y por lo tanto a Visual Basic 2005, que permite separaropartir

    una clase en varias porciones de cdigo.

    La explicacin ruda de esto, es que el programador puede tener dos ficheros

    de cdigo fuente independientes, que posean el mismo nombre de clase. Pa-

    ra indicar que pertenece a la misma clase, sta debe tener la palabra clave

    Partialcomo parte de su definicin para indicar que es una clase parcial. Un

    ejemplo que aclare esto es el siguiente:

    El comportamiento de la clase es el de una nica clase, por lo que su decla-

    racin y uso es como el de cualquier clase normal, tal y como se indica en el

    siguiente cdigo:

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    44/100

    Cursos144

    De todas las maneras, el entorno nos oculta muchas veces las clases parcia-

    les de una aplicacin. Para ello, presionaremos la opcin Mostrar todos los

    archivos de la ventanaExplorador de soluciones como se indica en la figu-ra 4.

    Figura 4 Icono u opcin paramostrar todos los archivos del pro-yecto

    De esta manera, podremos ac-

    ceder a los archivos y recursos

    del proyecto, incluidas las cla-

    ses parciales como se indica en la figura 5. En el archivo

    Form1.Designer.vb estar el cdigo utilizado por el diseador de formula-rios de Windows Forms, en el que se incluye la declaracin de todos los

    controles y controladores de eventos que hemos definido en nuestro proyec-

    to.

    Figura 5 Clase parcial en los archivos del pro-yecto

    A tener en cuenta:

    Cuando se genera un proyecto con VisualStudio 2005, el entorno genera diferentes

    clases parciales, como por ejemplo la que

    se genera para un formulario.

    Ver vdeo 38 Otras consideraciones.

    Contr oles de Windows For ms

    Dentro del entorno de desarrollo de Visual Studio 2005, nos encontramos un

    enorme conjunto de libreras y controles que podemos utilizar en nuestras

    aplicaciones Windows. Dependiendo del tipo de aplicacin que llevemos a

    cabo, el entorno habilitar los controles correspondientes para cada tipo de

    aplicacin. En nuestro caso, nos centraremos en los controles ms habitua-

    les de Windows, e indicaremos como utilizarlos en nuestros desarrollos.

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    45/100

    Visual Studio 2005 145

    En nuestro entorno de desarrollo,

    encontraremos diferentes grupos de

    controles o componentes dispuestos

    de ser utilizados. En la figura 1 en-

    contraremos los grupos de controles

    y componentes ms habituales.

    Estos controles se dividen en los

    grupos representados en la figura

    anterior. A continuacin veremos

    los ms representativos.

    Datos

    El grupo Datos corresponde con el

    grupo que tiene relacin directa con los componentes de acceso a datos,

    como se muestra en la figura 1.

    Figura 1 Controles Datos en Visual Stu-dio 2005

    Para muchos desarrolladores, los

    controles, componentes y mtodos

    de acceso a datos, contiene dentro

    de s un especial misterio, es como

    el Santo Grial de la programacin.

    Casi siempre nos atascamos ah,

    siempre en el mismo sitio. Pero no

    se preocupe ni lo ms mnimo por

    ello, aprenderemos a utilizarlos a

    base de prctica, y lo que es ms

    importante, los dominaremos rpi-

    damente. Solo como curiosidad y

    por ahora, le presentar uno de los

    componentes ms destacables en Vi-

    sual Studio 2005, por su semejanza con otro muy utilizado en "otros" entor-

    nos de desarrollo, estoy hablando del control y componente BindingNavi-

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    46/100

    Cursos146

    gator que usaremos frecuentemente en nuestras aplicaciones con acceso a

    fuentes de datos.

    Este control insertado en un formulario Windows, es el que se puede ver en

    la figura 2.Figura 2 Control BindingNavigator in-sertado en un formulario Windows en Vi-sual Studio 2005

    Como puede observar, este control,

    tiene un aspecto muy similar al del

    famosoRecordsetde Visual Basic 6

    o al DataNavigatorde Borland. Lgicamente, este control tiene un aspecto

    mucho ms vistoso y moderno, pero es uno de los controles estrella de Vi-sual Basic 2005, ya que en Visual Studio .NET 2002 y Visual Studio .NET

    2003 no exista este control en el entorno. Visual Studio 2005 y por lo tanto,

    Visual Basic 2005, s que nos trae sin embargo, la novedad del control Bin-

    dingNavigator.

    Comunidad dotNet: Visual Studio 2005 le proporciona un amplio con- junto de controles y componentes as como un no

    menos completo conjunto de clases que le facilita al

    desarrollador las tareas de programacin requeri-

    das. Sin embargo, existen contribuciones gratuitas

    y otras de pago, que el programador puede utilizar

    segn lo requiera. A continuacin le indico el que a

    mi modo de ver es el lugar ms representativo de

    este tipo de contribuciones a la Comunidad de des-

    arrolladores .NET.

    Ver www.goddotnet.com.

    Ver vdeo 40 Datos.

    Componentes

    Windows Forms incluye un conjunto de componentes muy nutrido y varia-

    do.

    http://www.goddotnet.com/http://www.goddotnet.com/
  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    47/100

    Visual Studio 2005 147

    Algunos de estos componentes, han sido mejorados y otros ampliados. En la

    figura 1 podemos observar estos componentes.

    Figura 1 Componentes de Windows

    Forms

    Los componentes son como contro-

    les no visibles, o dicho de otra for-

    ma, son controles que realizan cier-

    tas tareas, pero no tienen un interfaz

    que mostrar, como puede ser el caso

    de un botn o una caja de textos.

    Por ejemplo, el componente Timernos permite recibir una notificacin

    cada x tiempo, pero no muestra nada

    al usuario de nuestra aplicacin. Si

    hacemos doble clic sobre el compo-

    nente Timerpara insertarlo en el formulario, ste quedar dispuesto en la

    parte inferior del formulario como se indica en la figura 2.

    Figura 2 Control Timer insertado en un formulario de Win-dows Forms

    Este tipo de componentes no son visibles en tiempo

    de ejecucin

    Ver vdeo 41 Componentes.

    Contr oles comunes

    Con este nombre, se aglutinan los controles ms generales y variados quepodemos utilizar en nuestras aplicaciones Windows. Sera algo as, como el

    resto de controles y componentes no contenidos en ninguna de las secciones

    que hemos visto anteriormente, aunque esto no es siempre as. Por esa ra-

    zn, si encuentra dos controles o componentes iguales en dos o ms seccio-

    nes, no lo tenga en consideracin.

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    48/100

    Cursos148

    Digamos que en esta solapa se aglutinan por lo tanto, los controles que utili-

    zaremos con ms frecuencia.

    En la figura 1 podemos observar los controles y componentes citados.Figura 1 Controles Windows Forms enVisual Studio 2005Debido a la cantidad de controles y

    componentes de los distintos grupos

    del Cuadro de herramientas, pode-

    mos usar el siguiente truco para que

    nos resulte ms fcil su localizacin.

    Truco: Como puede observar, aveces cuesta localizar un control

    debido a la enorme cantidad de con-

    troles que hay. Para ordenarlos,

    puede arrastrar y soltar los contro-

    les y componentes en la barra de

    herramientas o bien, si quiere hacer una ordenacin por orden alfabtico,

    puede hacer clic con el botn secundario del mouse sobre una determinada

    seccin de controles y seleccionar la opcin Ordenar elementos alfabti-

    camente como se indica en la siguiente figura siguiente:

    Los controles y componentes de esa

    seccin quedarn ordenados alfa-

    bticamente.

    Lo ms destacable para el desarro-

    llador habituado a otros entornos,

    es que aqu veremos una gran can-

    tidad de controles que nos resulta-rn muy familiares. Controles co-

    mo: Label, PictureBox, TextBox,Frame que ahora pasa a llamarse

    GroupBox, CommandButton queahora pasa a llamarse Button,

    CheckBox, OptionButton que

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    49/100

    Visual Studio 2005 149

    ahora pasa a llamarse RadioButton, ComboBox, ListBox, HScrollBar,

    VScrollBar, Timer, etc.

    Pero adems tenemos muchos otros que no son tan habituales en todos los

    entornos de desarrollo diferentes de Visual Studio .NET. Controles que pro-

    porcionan nuevas y ventajosas caractersticas a la hora de desarrollar aplica-

    ciones con Visual Basic 2005. Entre estos controles, podemos encontrar el

    control PrintDocument y PrintPreviewControl, para imprimir y realizarvistas preliminares, ErrorProvider, WebBrowser, FolderBrowserDialog,

    ToolTip para aportar tooltips a nuestros controles, TrackBar, Numeri-

    cUpDown, SplitContainer, MonthCalendar, DateTimePicker, etc.

    Cada uno de los controles, tiene unas caractersticas y cualidades determi-

    nadas. Slo a base de prctica, aprenderemos a utilizarlos y lo nico quedebemos saber, es cul de ellos utilizar en un momento dado. El abanico de

    controles y componentes es lo suficientemente amplio como para poder

    abordar con ellos, cualquier tipo de proyecto y aplicacin Windows que nos

    sea demandada.

    Ver vdeo 42 Controles comunes.

    Gener al

    Esta seccin es como el cajn desastre, un lugar dnde podemos insertar

    otros controles o componentes desarrollados por terceros, por ejemplo.

    Figura 1 Seccin General en Visual Studio2005

    Esta seccin de todos los modos, la

    puede utilizar un desarrollador en

    muchos casos. Por ejemplo, los des-arrolladores que desean arrastrar y

    soltar aqu los controles y componen-

    tes que ms utilizan o los que utiliza

    en un determinado proyecto.

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    50/100

    Cursos150

    Otro caso de ejemplo es cuando se trabaja con controles o componentes si-

    milares desarrollados por dos empresas diferentes que queremos tener loca-

    lizados o separados para no mezclarlos. En otras circunstancias, tampoco es

    raro encontrarse con controles o componentes con iconos similares, por lo

    que aclararse cul es el que nos interesa puede ser una tarea obligada.

    An as, otra de las posibilidades con la que nos podemos encontrar para

    utilizar esta seccin es la de tener que utilizar un control o componente cir-

    cunstancialmente en un momento dado, y por eso, que no deseemos aadir

    este control o componente a otra seccin como la de Controles comunes por

    ejemplo.

    Utilice por lo tanto esta seccin como lo considere oportuno.

    Ver vdeo 43 General.

    Otr as consider aciones

    La seccin General nos indica un repositorio de mbito y carcter general,

    sin embargo, el desarrollador puede querer ordenar su propio repositorio o

    seccin de controles y componentes.

    Manipulando el cuadr o de her r amientas

    Para ello, nos posicionaremos en la barra de herramientas y presionaremos

    el botn secundario del mouse sobre la parte gris de la barra de herramien-

    tas desplegada y seleccionaremos la opcin Agregar ficha del men emer-

    gente, como se muestra en la figura 1.

    Cuando seleccionamos esta opcin, aparecer una caja de texto en la barra

    de herramientas dnde podremos escribir el nombre que consideremosoportuno, como se muestra en la figura 2.

    Si se hace la siguiente pregunta, cmo cambiar el nombre de una seccin

    ya creada o una existente?, sepa que deber realizar los siguiente pasos.

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    51/100

    Visual Studio 2005 151

    Haga clic con el botn secundario del mouse sobre la seccin sobre la que

    desea cambiar el nombre y seleccione la opcin Cambiar nombre de ficha

    como se muestra en la figura 3.

    ? Figura 1 Opcin de personalizacin denuestros propios grupos de controles y

    componentes

    ? Figura 2 Personalizacin de un grupo

    de controles y componentes en Visual Stu-dio 2005

    Figura 3

    De igual forma, puede cambiar tam-bin el nombre de los controles o

    componentes insertados.

    Para hacer eso, haga clic con el bo-

    tn secundario del mouse sobre un

    control o componente y seleccione la opcin Cambiar nombre de elemento

    como se muestra en la figura 4.

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    52/100

    Cursos152

    Visual Basic 2005, nos proporciona

    un amplio conjunto de opciones de

    personalizacin del entorno de tra-

    bajo, para que se ajuste a las exigen-

    cias de los desarrolladores.Figura 4FAQ:Qu ocurre si me equivoco perso-

    nalizando mi barra de herramientas?

    Visual Studio 2005 nos proporciona

    la posibilidad de resetear o restau-

    rar el estado inicial de la barra de

    herramientas en el entorno de desa-

    rrollo. Para hacer esto, haremos

    clic con el botn secundario del

    mouse la barra de herramientas y

    seleccionaremos la opcin Resta-

    blecer cuadro de herramientas del men emergente, como se muestra en la

    siguiente figura.

    Ojo!, al seleccionar esta opcin,

    perderemos todas las modificaciones

    que hayamos realizado sobre la ba-

    rra de herramientas.

    Otros controles a tener en cuenta

    Dentro del entorno de Visual Studio

    2005 y en .NET en general, se han

    aadido una serie de controles nue-

    vos que conviene comentar.

    Uno de estos controles, se llama

    WebBrowser, tal y como se indica

    en la figura 5.

    Este control es la representacin de un control especfico para mostrar con-

    tenido XML o contenido HTML, como si de una pgina Web se tratara.

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    53/100

    Visual Studio 2005 153

    Sirva el siguiente ejemplo de cdigo fuente para demostrar como usar el

    control y como se muestra dicho control en una aplicacin Windows.

    Figura 5 Control WebBrowser en el Cuadro de herramientas

    El cdigo de la aplicacin quedara como se detalla a continuacin:

    Nuestro ejemplo en ejecucin es el que se muestra en la figura 6.

    Figura 6 Control WebBrowser enejecucinHay ms controles que repre-

    sentan una novedad para el

    desarrollador de .NET, como

    puede ser por ejemplo, el con-

    trol MaskedTextBox, como se

    muestra en la figura 7.

    Sin embargo, hay otros contro-

    les clsicamente demandados por los desarrolladores, como los controles de

    accesos a puertos COM y puertos serie, como es el caso del control Serial-Port que se muestra en la figura 8.

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    54/100

    Cursos154

    No es cuestin de repasar cada uno de los controles que el programador

    puede encontrar en Visual Studio 2005, sin embargo, no me gustara dejar

    de comentar, uno de los controles ms usados y tiles para las aplicaciones

    Windows, que tiene a su vez su equivalente para el desarrollo de aplicacio-

    nes Web en ASP.NET. Me refiero al control MonthCalendar que se mues-

    tra en la figura 9.

    Figura 7 Control MaskedTextBox en Visual Basic 2005

    Figura 8 Control SerialPort en Visual Basic 2005

    Figura 9 Control MonthCalendar en Visual Basic 2005

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    55/100

    Visual Studio 2005 155

    Figura 10 Control MonthCalendar inser-tado en un formulario WindowsEste control, que se muestra en la fi-

    gura 10 cuando lo insertamos en unformulario, es un control que nos faci-

    lita la entrada de fechas en el sistema

    y permite asegurarnos, que la fecha

    seleccionada es una fecha vlida.

    Ver vdeo 44 Otras consideraciones.

    Tr abajo con contr oles

    Hasta ahora, hemos aprendido a identificar las partes ms importantes del

    entorno de desarrollo de Visual Studio 2005, hemos visto igualmente como

    se separan los controles y componentes, y hemos visto tambin que existe

    un grupo de solapas donde podemos aadir nuestros propios controles y

    componentes, incluso hemos aprendido a crear nuestro propio grupo o sec-

    cin de controles y componentes, en el que podemos tambin incluir los

    controles y componentes que por ejemplo hayamos desarrollado nosotros

    mismos, sin embargo, para poder insertar ah un control o componente des-

    arrollado por nosotros, deberamos aprender a crearlos.

    Eso es justamente lo que veremos a continuacin adems de ver otras tcni-

    cas que conviene repasar antes de aprender a desarrollar nuestros propios

    controles y componentes. Por eso, lo primero que haremos ser aprender a

    desenvolvernos adecuadamente en el entorno de desarrollo con los controles

    que ya conocemos.

    Ver vdeo 45 Trabajo con controles.

    Dominando los contr oles en el entor no de tr abajo

    Si queremos aprender a crear nuestros propios controles para poder distri-

    buirlos y utilizarlos en nuestro entorno, lo mejor es dominar el uso de los

    controles en nuestro entorno de desarrollo.

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    56/100

    Cursos156

    Ya hemos visto anteriormente como insertar un control a nuestro formula-

    rio, pero quizs no sepamos como manejarlos de forma eficiente en ese

    formulario.

    Inserte en un formulario Windows por ejemplo, tres controles Button como

    se muestra en la figura 1.

    ? Figura 1 Controles Button insertadosen un formulario WindowsComo podemos observar, los contro-

    les estn dispuestos de una forma

    desordenada, ya que al insertarlos

    por ejemplo haciendo doble clic tresveces sobre un control Button, stosquedan dispuestos anrquicamente

    en el formulario.

    Separe los controles Button de for-

    ma que queden ahora esparcidos en

    el formulario de alguna manera tal y

    como se muestra en la figura 2.

    ? Figura 2 Controles Button separadosen el formularioSeleccione todos los controles But-

    ton como se mostraba en la figura 2

    y seleccione del men las opciones

    Formato > Alinear > Lados iz-

    quierdos como se indica en la figura

    3.

    Sin embargo, podemos extender el

    uso de las propiedades especiales

    para alinear los controles en un for-

    mulario. Por ejemplo, ahora que tenemos los controles Button alienados co-

    rrectamente, podemos hacer uso de la opcin de men Formato > Espacia-

    do vertical > Quitar como se indica en la figura 4.

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    57/100

    Visual Studio 2005 157

    Figura 3 Los controles Button quedarn ordenados correctamente dentro del formula-

    rio

    Figura 4 Otras opciones especiales, nos permiten alinear o trabajar con los controles de

    forma rpida y segura

    ? Figura 5 Controles alineados y espaciados se-gn la eleccin de opciones del entornoEn este caso, los controles quedarn dis-puestos en el formulario como se indica en

    la figura 5.

    Como podemos apreciar, alinear los contro-

    les en el entorno es realmente sencillo. Vi-

    sual Studio 2005 nos proporciona una gran

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    58/100

    Cursos158

    cantidad de opciones para llevar a cabo este tipo de tareas.

    ? Figura 6 Controles de diferentes ta-maos dispuestos en el formulario Win-

    dows

    Incluso si nos encontramos con un

    controles de diferente tamao entre

    s como se muestra en la figura 6,

    podemos hacer uso de la opcin del

    men Formato > Igualar tamao

    permitindonos cambiar el tamao

    de los controles seleccionados de-

    ntro del formulario Windows.El men que nos permite cambiar

    los tamaos de los controles insertados en un formulario posee diferentes

    posibilidades. En nuestro caso, seleccionaremos del men, la opcin For-

    mato > Igualar tamao > Ambos tal y como se muestra en la figura 7.

    Figura 7 Cambiando los tamaos ancho y alto de los controles seleccionados de un for-mulario

    Una vez seleccionada esta opcin, los controles se modificarn con el mis-

    mo tamao tal y como se muestra en la figura 8.

    Truco: Suponiendo que tengamos tres controles Button de diferentes ta-

    maos y que queramos que todos tengan el mismo tamao que el segundo

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    59/100

    Visual Studio 2005 159

    de sus controles, seleccionaremos siempre como primer control, el control

    que queremos como base de tamao para el resto de controles, y poste-

    riormente con la tecla Ctrlseleccionaremos uno a uno el resto de controles.

    Figura 8 Controles del formulario con sutamao modificadoSin embargo, para alinear los con-

    troles en un formulario tenemos ms

    opciones. Hemos visto algunas de

    ellas, quizs las ms habituales, pero

    como podemos deducir del men

    Formato, podremos alinear los con-

    troles, espaciarlos entre s horizontalo verticalmente, modificar su tama-

    o, centrarlos en el formulario hori-

    zontal o verticalmente, etc.

    Por otro lado, Visual Studio 2005, nos proporciona una utilidad en tiempo

    de diseo muy til. Se trata de las

    guas de representacin que vere-

    mos en tono azul claro, y que apa-

    recen cuando movemos un controlen el formulario. Estas guas indi-

    can la situacin y posicin de un

    control respecto a otro prximo. La

    representacin de estas guas que se

    muestran en la figura 9, nos facilita

    enormemente la disposicin de los

    controles en un formulario.

    Figura 9 Guas o reglas de direccin oseparacin entre controles

    Ver vdeo 46 Dominando los controles

    Cr eacin de contr oles en tiempo de ejecucin

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    60/100

    Cursos160

    Prcticamente todo en .NET son objetos. Los controles tambin, as que pa-

    ra aadir un control a un formulario en tiempo de ejecucin, deberemos

    hacerlo tratndolo como un objeto.

    La declaracin principal de un objeto, se realiza con la instruccin New.

    El siguiente ejemplo de cdigo, crea un control Button en tiempo de ejecu-

    cin.

    En la figura 1 podemos ver el resultado en ejecucin del cdigo escrito an-

    teriormente. Para ejecutar nuestra aplicacin, presionaremos el botn F5,que es la forma habitual de ejecutar una aplicacin.

    Figura 1 Creacin de un control en tiem-po de ejecucin en Visual Basic 2005Otra de las caractersticas de los

    controles, es la posibilidad de mani-

    pular los controles en tiempo de eje-

    cucin. Sin embargo, en nuestro ca-

    so, vamos a modificar la propiedad

    Text del control Button que hemosinsertado en tiempo de ejecucin.

    Para hacer esto, lo ms habitual es

    poner el nombre del control, su propiedad y el valor correspondiente. En

    nuestro caso, el cdigo quedara como el que se indica a continuacin:

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    61/100

    Visual Studio 2005 161

    Analizando este cdigo, parece estar bien escrito, pero al presionar F5 para

    ejecutar nuestro proyecto, nos encontramos con que Visual Basic 2005 nosmuestra un error. Nos indica que btn1 no est declarado. Qu ocurre?. Al

    buscar la clase de ensamblados de la aplicacin, el control Button de nom-

    brebtn1 no existe, por lo que Visual Basic 2005 detecta que debemos decla-

    rar el control, sin embargo y en nuestro caso, esta declaracin la hacemos en

    tiempo de ejecucin. Cmo acceder a la propiedad Text del control Button

    creado en tiempo de ejecucin?

    El siguiente cdigo resuelve esta duda:

    Bsicamente, utilizamos una conversin explcita del objeto devuelto por la

    bsqueda realizada en los controles del formulario principal, que ser un

    control Button de nombrebtn1, para poder as, cambiar la propiedad Text

    de este control.

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    62/100

    Cursos162

    An as, tambin podramos haber accedido a la propiedad Text del control

    mediante otra accin complementaria, como se muestra en el siguiente c-

    digo:

    Ojo!: Tenga en cuenta que esta accin se puede realizar si la declaracin

    del objeto Button est dentro del mismo mbito de llamada de la

    propiedadText. Por esa razn, hemos sacado la declaracin Mi-

    Control del objetoButton fuera del procedimiento de creacin di-

    nmica del control, pero tenga en cuenta tambin, que en este ca-

    so, tendremos declarada siempre en memoria la variable MiCon-

    trol. El uso de la conversin (Button) es siempre ms seguro.

    El caso anterior utilizando nicamente la conversin explcita, (Button),

    quedara como se detalla a continuacin (para estos dos ejemplos, he aadi-

    do adems un control Button al formulario Windows, desde el cul cambia-

    remos la propiedad Text del control Button creado en tiempo de ejecu-cin):

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    63/100

  • 8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte2

    64/100

    Cursos164

    Para hacer esto, deberemos utilizar el mtodoAddHandler para asignar un

    evento al control creado dinmicamente. El cdigo de nuestro ejemplo me-

    jorado es el que se detalla a continuacin:

    Figura 3 Ejecucin delejemplo con asociacin de

    evento desarrollado en Vi-sual Basic 2005Nuestro ejemplo en

    ejecucin es el que semuestra en la figura 3.

    Cr eacin de una

    matr iz de contr oles

    En el captulo anterior,

    hemos visto como crear

    controles en tiempo deejecucin e incluso

    como asociar un evento a un control creado dinmicamente en Visual Basic

    2005, pero,