c# windows form

Download C# WIndows Form

If you can't read please download the document

Upload: antonih10

Post on 26-Nov-2015

243 views

Category:

Documents


4 download

TRANSCRIPT

  • Mdulo 3 - Desarrollo de aplicaciones WindowsEn este mdulo, conoceremos las partes generales y ms importantes del entorno dedesarrollo rpido Visual Studio 2008 para la programacin de aplicaciones con estelenguaje de la familia .NET.

    Veremos las partes principales del entorno, tambin veremos como desarrollarnuestros propios controles Windows, aprenderemos a trabajar con imgenes ygrficos con Visual Basic y finalmente, conoceremos como desplegar nuestrasaplicaciones desarrolladas en Visual Basic 2008.

    Las partes que forman parte de este mdulo son las siguientes:

    Captulo 1 Uso del diseador de Visual Studio 2008

    Captulo 2 Controles de Windows Forms

    Captulo 3 Desarrollo de controles

    Captulo 4 Trabajo con imgenes y grficos

    Captulo 5 Despliegue de aplicaciones

    Ver vdeo de esta leccin-video en Visual Studio 2005 vlido paraVisual Studio 2008

  • IntroduccinCuando nos encontramos con Visual Studio 2008 por primera vez, saltan a la vista,algunos de los cambios ms importantes de este novedoso entorno de desarrollo deaplicaciones Windows.

    Para un desarrollador, familiarizarse con el entorno de Visual Studio 2008 es unatarea que no debe entraar una complejidad excesivamente grande. Como nosocurre a todos los que nos encontramos delante de un nuevo entorno de trabajo, lonico que se requiere es constancia y prctica, mucha prctica. Sin embargo, siusted es ya un desarrollador habitual de otros entornos de desarrollo, notar que susavances van a ser significativos en muy poco tiempo.

    Nota:Si est utilizando Visual Basic 2008 Express para seguir este cursodebe saber que este entorno est especializado en desarrollaraplicaciones Windows con Visual Basic 2008, aunque podr usarcontroles y libreras escritas en otros lenguajes de la plataforma .NET.

    Mdulo 3 - Captulo 1

    1.Cuadro de herramientas

    2.Explorador de base de datos

    3.Explorador de soluciones

    4.Propiedades

    5.Menus y barra de botones

    6.Otras consideraciones

    Ver vdeo de esta leccin-video en Visual Studio 2005 vlido paraVisual Studio 2008

  • Mdulo 3 - Captulo 1

    1. Cuadro de herramientasEl cuadro o barra de herramientas de Visual Studio 2008, nos permite utilizar losdistintos componentes que .NET Frameworkpone a nuestra disposicin. Dentro deVisual Studio 2008 tenemos una gran cantidad de controles dispuestos en diferentescategoras.

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

    Figura 1

    ElCuadro de herramientas, lo localizar en la parte izquierda del entornoVisualStudio 2008.

    Cuando iniciamos un nuevo proyecto con Visual Studio 2008, el cuadro deherramientas queda rellenado con los controles que podemos utilizar en el proyecto.

  • Si abrimos un formulario Windows, los controles quedan habilitados para que lospodamos insertar en el formulario Windows. En la figura 2 se muestra la barra deherramientas con los controles preparados paraser insertados en el formularioWindows.

    Toolbox de Visual Studio 2008 con controles Windows preparados para ser insertados en el

    formulario Windows

    Figura 2

    Nota:Para insertar un control en un formulario Windows, se requiere que elformulario Windows sobre el que deseamos insertar un control, estabierto. Una vez que est abierto, bastar con realizar una de las tressiguientes acciones para insertar un control al formulario: Hacer doble clic sobre un control del cuadro de herramientas Hacer clic sobre un control del cuadro de herramientas, y sin soltarel botn del mouse, arrastrarlo sobre el formulario Hacer clic sobre un control del cuadro de herramientas, y luegohacer clic sobre el formulario y arrastrar para marcar una zona quecubrir nuestro control y soltar el ratn

    El control quedar entonces insertado dentro del formulario.

    Ver vdeo de esta leccin-video en Visual Studio 2005 vlido paraVisual Studio 2008

  • Mdulo 3 - Captulo 1

    2. Explorador de base de datosSi ha sido lo suficientemente observador cuando se explicaban los detalles del cuadroo barra de herramientas, y ha prestado especial atencin a las figuras o a lasventanas del entorno de desarrollo de Visual Studio 2008, quizs haya notado que enla parte izquierda adems de la solapacuadro de herramientas, aparece otra solapade nombreexplorador 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 conbases de datos, ya sean Microsoft Access, Microsoft SQL Server o cualquier otrafuente de datos.

    En la figura 1 puede observar la solapaExplorador de base de datosextendida conparte de susopciones.

    Figura 1

  • Conectando con una base de datos Microsoft Access a travs de OLE DB

    Para muestra un botn, y dado el carcter prctico de este tutorial, aprenderacrear una conexin con cualquier base de datos, en nuestro caso de ejemplo unabase de datos Microsoft Access, para poder utilizarla fcilmente en nuestra aplicacinWindows.

    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

    Por defecto, la ventanaAgregar conexinqueda preparada para establecer unaconexin con una fuente de datos de origen de datosOLE DB, por lo que si nuestraintencin es establecer una conexin con otra fuente de datos, entonces deberemoshacer clicsobre el botnCambiar...que se indica en la figura 3.

    Figura 3

  • De esta manera, podemos indicar el origen de acceso a datos que necesitamos paraestablecer la conexin con nuestra fuente de datos, y que en nuestro ejemplo, noser un proveedor de SQL Server, por lo que el origen de datos OLE DB es vlidoparanosotros.

    Una vez que hemos hecho clic sobre el botnCambiar..., nos aseguramos por lotanto, que nuestroorigen de datos esbase de datos de Microsoft Access (OLE DB),como se indica en la figura 4.

    Figura 4

    FAQ:Puedo utilizar el proveedor OLE DB en lugar del proveedor de SQLServer para conectar con una base de datos SQL Server?Con OLE DB, puede acceder a fuentes de datos SQL Server u otrasfuentes de datos como Microsoft Access, sin embargo, si utiliza SQLServer 7.0, SQL Server 2000, SQL Server 2005 SQL Server 2008,se recomienda el uso del proveedor de SQL Server, que es unproveedor de acceso a datos nativo que aumenta el rendimiento denuestras aplicaciones con SQL Server. Slo si utiliza una versin deSQL Server anterior a SQL Server 7.0, deber utilizar necesariamenteel proveedor de acceso a datos OLE DB.

    Una vez que hemos seleccionado el proveedor de acceso a datos, nos centraremos en laopcinNombre de archivo base de datoscomo se muestra en la figura 5.

  • Figura 5

    Para agregar el fichero de base de datos a la conexin, presionaremos el botnExaminar...y seleccionaremos el fichero de base de datos de nuestro disco duro.De esta manera, la base de datos quedar indicada en la conexin y tan slodeberemos probar nuestra conexin pulsando el botnProbar conexincomo seindica en la figura 6.

    Figura 6

  • Si la prueba de conexin se ha realizado satisfactoriamente, recibiremos un mensajeen pantalla afirmativo como el que se indica en la figura 7.

    Figura 7

    A tener en cuenta:En este ejemplo, la conexin con la base de datos Microsoft Access,no tiene ningn tipo de usuario y contrasea. Tenga en cuenta queen la parte identificada comoConexin con la base de datos,podramos indicar el usuario y contrasea si fuera necesario.

    En este punto, tan slo deberemos presionar sobre el botnAceptarpara que labase de datos con la que hemos establecido la conexin, quede ahora insertada en laventana delExplorador de base de datoscomo se muestra en la figura 8.

    Figura 8

    Ver vdeo de esta leccin-video en Visual Studio2005 vlido paraVisual Studio 2008

  • Mdulo 3 - Captulo 1

    3. Explorador de solucionesElExplorador de solucioneslo podemos encontrar en la parte derecha de nuestro entorno dedesarrollo.

    Una solucin se compone de proyectos y stos, de recursos y objetos. Por lo general, unasolucin contendr un proyecto, pero podemos encontrarnos con ms de un proyecto dentrode una misma solucin.

    Sin embargo, estos conceptos son muysencillos de comprender y controlar, y para nadadebe hacernos pensar que esto es algo complejo que nos costar mucho tiempo dominar.

    En la figura 1, podemos observar el explorador de soluciones deVisual Studio 2008.

    Figura 1

  • Si queremos aadir un nuevo formulario al proyecto, lo haremos presionando con elbotn secundario en cualquier parte de la ventana del explorador de soluciones, perosi esa pulsacin la hacemos en alguno de los objetos que contiene el proyecto, nopodremos hacerlo, ya que el IDE de Visual Studio 2008 muestra un men diferentesegn el objeto presionado, por ejemplo si queremos aadir un nuevo proyecto,podemos hacerlo presionando con el botn secundario del mouse sobre la "solucin".

    Nota:Para abrir un recurso de la solucin, basta con situarnos en el recursodeterminado, por ejemplo un formulario Windows de nombreForm1.vb y hacer doble clic sobre l. El recurso se abrirautomticamente en Visual Studio 2008.Adems, en Visual Studio 2008 sabremos en todo momento sobrequ recurso estamos trabajando en un momento dado.

    Ver vdeo de esta leccin-video en Visual Studio 2005 vlido paraVisual Studio 2008

  • Mdulo 3 - Captulo 1

    4. PropiedadesLa ventana de propiedades la encontraremos en la parte derecha y ms abajo de la ventanaExplorador de solucionesen nuestro entorno de desarrollo.

    Esta ventana nos permitir acceder a las propiedades de los objetos insertados en nuestrosformularios Windows, como se muestraen la figura 1.

    Figura 1

    Para acceder a las propiedades de un determinado control, deberemos seleccionar el controlen el formulario Windows y acudir a la ventanaPropiedades, o bien, seleccionar el controlen el formulario Windows y presionar la teclaF4.

    Ver vdeo de esta leccin-video en Visual Studio 2005 vlido paraVisual Studio 2008

  • Mdulo 3 - Captulo 1

    5. Mens y barra de botonesRespecto a los mens y barra de botones, son muchas las opciones que tenemosdisponibles, tal como podemos comprobar en la figura 1.Las barras de botones son configurables, adems de que podemos elegir las quequeremos que se muestren de forma permanente en el entorno de desarrollo deVisual Studio 2008.Algunas de las barras de botones se mostrarn automticamente segn las tareasque estemos realizando, por ejemplo, cuando estamos en modo depuracin odiseando las tablas de una base de datos.

    Con el contenido de los mens ocurre lo mismo, segn el elemento que tengamosseleccionado se mostrarn ciertas opciones que sea relevantes para ese elemento delIDE de Visual Studio 2008.

    Los mens y barras de botones de VisualStudio 2008

    Figura 1

    Algunas de las opciones que tenemos en los mens tambin las podemos conseguirusando los mens contextuales (el mostrado al presionar con el botn secundario delmouse), y como es de esperar, tambin sern diferentes segn el elemento sobre elque hemos presionado.

  • Por ejemplo, para configurar el proyecto actual, podemos elegir la opcinPropiedadesdel menProyectoo bien presionar con el botn secundario delmouse sobre el proyecto mostrado en el Explorador de soluciones.

    Al seleccionar las propiedades del proyecto, tendremos una nueva ventana desde laque podemos configurar algunas de las caractersticas de nuestro proyecto. En lafigura 2, tenemos esa ventana de propiedades del proyecto, en la que podemosapreciar que est dividida segn el tipo de configuracin que queremos realizar, eneste caso concreto las opciones de generacin o compilacin del proyecto.

    Propiedades del proyecto sobrela que se trabaja en Visual Basic 2008

    Figura 2

    Como vemos en la figura 2, existen sin embargo multitud de opciones y apartadosdiferentes relacionados todos ellos con nuestra solucin.Otro de los apartados destacables, es el apartado denominadoPublicar.

    An as, ste es el corazn o parte fundamental que debemos controlar a la hora dedesarrollar una aplicacin o a la hora de gestionar una solucin, porque dentro deesta ventana, se resume buena parte de los mens y barra de botones del entornodeVisual Studio 2008.

    De todos los modos, tendremos la oportunidad de ver ms adelante, algunos usos dealgunas de las opciones de la barra de botones del entorno.

    Ver vdeo de esta leccin-video en Visual Studio 2005 vlido paraVisual Studio 2008

  • Mdulo 3 - Captulo 1

    6. Otras consideracionesEl desarrollador que haya utilizado previamente otros entornos de desarrollo distintoa los de la familia de Visual Studio .NET, encontrar muy interesantes algunos de loscambios incorporados enVisual Studio 2008. Al principio, quizs se encuentre unpoco desorientado, pero rpidamente y gracias a su experiencia en otros entornos dedesarrollo, se acostumbrar al cambio. Entre algunos de estos cambios, destacaralos siguientes:

    EnVisual Studio 2008, acceder a los objetos de nuestra aplicacines muchoms fcil. Dentro del entorno, observaremos que se van creando diferentessolapas que nos permite acceder y localizar los recursos con los que estamostrabajando de forma rpida. En la figura 1 podemos observar justamente estoque comento.

    Solapas de los objetos abiertos en Visual Studio 2008

    Figura 1

    Visual Basic 2008permite, hacer unStop & Go(editar y continuar), denuestras aplicaciones, es decir, pausar la ejecucin de una aplicacin en mododepuracin y modificar los valores o propiedades que deseemos y continuarejecutndola. Esta opcin que los programadores de Visual Basic 6 utilizan conmucha frecuencia en el desarrollo de sus aplicaciones, se ha mantenido enVisual Basic 2008, pero no en Visual Studio .NET 2002 y Visual Studio .NET2003. Si por alguna razn, debe trabajar con alguno deestos entornos, debesaber que esta opcin no est disponible para las versiones comentadas.

  • Otra caracterstica que debemos conocer de nuestro entorno de desarrollo, esla capacidad de anclar o fijar una ventana de las comentadas anteriormente ode permitir que se haga visible cuando acercamos el puntero del mouse sobreella. Esta opcin esla que puede verse en la figura 2.

    Opcin de ocultar o mostrar la ventana seleccionada en Visual Studio 2008

    Figura 2

    Ntese que al presionar el icono indicado enla figura 2, haremos que esta ventanaquede fija en el entorno de desarrollo. Cuando pulsamos este icono, la ventanaqueda fija y queda representado por un icono como el que se muestra en la figura 3.

    Icono para ocultar o mostrar la ventana seleccionada cuando se encuentra en modoanclado

    Figura 3

    Algo queocultael entorno deVisual Studio 2008por defecto, son lasdenominadas clases parciales.Se trata de una nueva caracterstica aadida a .NET 2.0 y por lo tanto a VisualBasic 2008, que permitesepararo partiruna clase en varias porciones decdigo.

    La explicacin ruda de esto, es que el programador puede tener dos ficheros decdigo fuente independientes, que posean el mismo nombre de clase.Para indicar que pertenece a la misma clase, sta debe tener la palabra clavePartialcomo parte de su definicin para indicar que es una clase parcial.Un ejemplo que aclare esto es el siguiente:

    Public Class Class1

    Public Function Accion1() As Integer

    Return 1

    End Function

    End Class

    Partial Public Class Class1

  • Public Function Accion2() As Integer

    Return 2

    End Function

    End Class

    El comportamiento de la clase es el de una nica clase, por lo que su declaracin yuso es como el de cualquier clase normal, tal y como se indica en el siguiente cdigo:

    Public Class Form1

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

    Dim MiClase As New Class1

    MessageBox.Show(MiClase.Accion2.ToString() & vbCrLf &MiClase.Accion1.ToString())

    End Sub

    End Class

    De todas las maneras, el entorno nos oculta muchas veces las clases parciales de unaplicacin.Para ello, presionaremos laopcinMostrar todos los archivosde la ventanaExplorador de solucionescomo se indica en la figura 4.

    Icono u opcin para mostrar todos los archivos del proyecto

    Figura 4

    De esta manera, podremos acceder a los archivos y recursos del proyecto, incluidaslas clases parciales como se indica en la figura 5.En el archivo Form1.Designer.vb estar el cdigo utilizado por el diseador deformularios de Windows Forms, en el que se incluye la declaracin de todos loscontroles y controladores de eventos que hemos definido en nuestro proyecto.

  • Clase parcial mostrada en los archivos del proyecto

    Figura 5

    A tener en cuenta:Cuando se genera un proyecto con Visual Studio 2008, el entornogenera diferentes clases parciales, como por ejemplo la que segenera para un formulario.

    Ver vdeo de esta leccin-video en Visual Studio 2005 vlido paraVisual Studio 2008

  • IntroduccinDentro del entorno de desarrollo deVisual Studio 2008, nos encontramos un enormeconjunto de libreras y controles que podemos utilizar en nuestras aplicacionesWindows. Dependiendo del tipo de aplicacin que llevemos a cabo, el entornohabilitar los controles correspondientes para cada tipo de aplicacin. En nuestrocaso, nos centraremos en los controles ms habituales de Windows, e indicaremoscomo utilizarlos en nuestros desarrollos.

    En nuestro entorno de desarrollo, encontraremos diferentes grupos de controles ocomponentes dispuestos de ser utilizados. En la figura 1 encontraremos los gruposde controles y componentes ms habituales.

    Grupos decontroles en Visual Studio 2008

    Figura 1

    Estos controles se dividen en los grupos representados en la figura anterior. Acontinuacin veremos los ms representativos.

  • Mdulo 3 - Captulo 2

    1.Datos

    2.Componentes

    3.Controles comunes

    4.General

    5.Otras consideraciones

    Ver vdeo de esta leccin-video en Visual Studio 2005 vlido paraVisual Studio 2008

    Mdulo 3 - Captulo 2

    1. DatosEl grupoDatoscorresponde con el grupo que tiene relacin directa con loscomponentes de acceso a datos, como se muestra enla figura 1.

  • Controles de Datos en Visual Studio 2008

    Figura 1

    Para muchos desarrolladores, los controles, componentes y mtodos de acceso adatos, contiene dentrode s un especial misterio, es como elSanto Grialde laprogramacin. Casi siempre nos atascamos ah, siempre en el mismo sitio. Pero nose preocupe ni lo ms mnimo por ello, aprenderemos a utilizarlos a base de prctica,y lo que es ms importante, losdominaremos rpidamente. Solo como curiosidad ypor ahora, le presentar uno de los componentes ms destacables enVisual Studio2008, por su semejanza con otro muy utilizado en "otros" entornos de desarrollo,estoy hablando del control y componenteBindingNavigatorque usaremosfrecuentemente en nuestras aplicaciones con acceso a fuentes de datos.

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

    Control BindingNavigator insertado en un formulario Windows en Visual Studio 2008

    Figura 2

    Como puede observar, este control, tiene un aspecto muy similar al del famosoRecordsetde Visual Basic 6 o alDataNavigatorde Borland. Lgicamente, este controltiene un aspecto mucho ms vistoso y moderno, pero es uno de los controles estrelladeVisual Basic 2005y que tambin estn incluidos enVisual Studio 2008, ya que enVisual Studio .NET 2002 y Visual Studio .NET 2003 no exista este control en elentorno.

  • Desde Visual Studio 2005 y por lo tanto, desde Visual Basic 2005, tenemos laposibilidad de trabajar con el controlBindingNavigator.

    Comunidad dotNet:Visual Studio 2008 le proporciona un amplio conjunto de controles ycomponentes as como un no menos completo conjunto de clases quele facilita al desarrollador las tareas de programacin requeridas. Sinembargo, existen contribuciones gratuitas y otras de pago, que elprogramador puede utilizar segn lo requiera. A continuacin leindico el que a mi modo de ver es el lugar ms representativo de estetipo de contribuciones a la Comunidad de desarrolladores .NET.

    Ver vdeo de esta leccin-video en Visual Studio 2005 vlido paraVisual Studio 2008

  • Mdulo 3 - Captulo 2

    2. ComponentesWindows Formsincluye un conjunto de componentes muy nutrido y variado. Algunosde estos componentes, han sido mejorados y otros ampliados. En la figura 1podemos observar estos componentes.

    Componentes de Windows Forms

    Figura 1

    Los componentes soncomo controles no visibles, o dicho de otra forma, soncontroles que realizan ciertas tareas, pero no tienen un interfaz que mostrar, comopuede ser el caso de un botn o una caja de textos.

  • Por ejemplo, el componenteTimernos permite recibir una notificacin cada xtiempo, pero no muestra nada al usuario de nuestra aplicacin. Si hacemos doble clicsobre el componenteTimerpara insertarlo en el formulario, ste quedar dispuestoenla parte inferior del formulario como se indica en la figura 2.

    Control Timer insertado en un formulario de Windows Forms

    Figura 2

    Este tipo de componentes no son visibles en tiempo de ejecucin.

    Ver vdeo de esta leccin-video en Visual Studio 2005 vlido paraVisual Studio 2008

  • Mdulo 3 - Captulo 2

    3. Controles comunesCon este nombre, se aglutinan los controles ms generales y variados que podemosutilizar en nuestras aplicaciones Windows. Sera algo as, como el resto de controlesy componentes no contenidos en ninguna de las secciones que hemos vistoanteriormente, aunque esto no es siempre as. Por esa razn, si encuentra doscontroles o componentes iguales en dos o mssecciones, no lo tenga enconsideracin.

    Digamos que en esta solapa se aglutinan por lo tanto, los controles que utilizaremoscon ms frecuencia.

    En la figura 1 podemos observar los controles y componentes citados.

    Controles Windows Forms en Visual Studio 2008

    Figura 1

  • Debido a la cantidad de controles y componentes de los distintos grupos del Cuadrode herramientas, podemos usar el siguiente truco para que nos resulte ms fcil sulocalizacin.

    Truco:Como puede observar, a veces cuesta localizar un control debido a laenorme cantidad de controles que hay. Para ordenarlos, puedearrastrar y soltar los controles y componentes en la barra deherramientas o bien, si quiere hacer una ordenacin por ordenalfabtico, puede hacer clic con el botn secundario del mouse sobreuna determinada seccin de controles y seleccionar la opcinOrdenar elementos alfabticamentecomo se indica en lasiguiente figura siguiente:

    Los controles y componentes de esa seccin quedarn ordenadosalfabticamente.

    Lo ms destacable para el desarrollador habituado a otros entornos, es que aquveremos unagran cantidad de controles que nos resultarn muy familiares.Controles como:Label,PictureBox,TextBox,Frameque ahora pasa a llamarseGroupBox,CommandButtonque ahora pasa a llamarseButton,CheckBox,OptionButtonque ahora pasa a llamarseRadioButton,ComboBox,ListBox,HScrollBar,VScrollBar,Timer, etc.

    Pero adems tenemos muchos otros que no son tan habituales en todos los entornosde desarrollo diferentes de Visual Studio .NET. Controles que proporcionan nuevas yventajosas caractersticas a la hora de desarrollar aplicaciones con Visual Basic 2008.

  • Entre estos controles, podemos encontrar el controlPrintDocumentyPrintPreviewControl, para imprimir y realizar vistas preliminares,ErrorProvider,WebBrowser,FolderBrowserDialog,ToolTipparaaportartooltipsa nuestroscontroles,TrackBar, NumericUpDown, SplitContainer, MonthCalendar,DateTimePicker, etc.

    Cada uno de los controles, tiene unas caractersticas y cualidades determinadas.Slo a base de prctica, aprenderemos a utilizarlos y lo nico que debemos saber, escul de ellos utilizar en un momento dado.

    El abanico de controles y componentes es lo suficientemente amplio como parapoder abordar con ellos, cualquier tipo de proyecto y aplicacin Windows que nos seademandada.

    Ver vdeo de esta leccin-video en Visual Studio 2005 vlido paraVisual Studio 2008

    Mdulo 3 - Captulo 2

    4. GeneralEsta seccin es como el cajn desastre, un lugar dnde podemos insertar otroscontroles o componentes desarrollados por terceros, por ejemplo.

  • Seccin General en Visual Studio 2008

    Figura 1

    Esta seccin de todos los modos, la puede utilizar un desarrollador en muchos casos.Por ejemplo, los desarrolladores que desean arrastrar y soltar aqulos controles ycomponentes que ms utiliza o los que utiliza en un determinado proyecto.

    Otro caso de ejemplo es cuando se trabaja con controles o componentes similaresdesarrollados por dos empresas diferentes que queremos tener localizados oseparados para no mezclarlos.En otras circunstancias, tampoco es raro encontrarse con controles o componentescon iconos similares, por lo que aclararse cul es el que nos interesa puede ser unatarea obligada.

    An as, otra de las posibilidades con la que nos podemos encontrar para utilizar estaseccin es la de tener que utilizar un control o componente circunstancialmente enun momento dado, y por eso, que no deseemos aadir este control o componente aotra seccin como la deControles comunespor ejemplo.

    Utilice por lo tanto esta seccin como lo considere oportuno.

    Ver vdeo de esta leccin-video en Visual Studio 2005 vlidoparaVisual Studio 2008

  • Mdulo 3 - Captulo 2

    5. Otras consideracionesLa seccinGeneralnos indica un repositorio de mbito y carcter general, sinembargo, el desarrollador puede querer ordenar su propio repositorio o seccin decontroles y componentes.

    Manipulando el Cuadro de herramientas

    Para ello, nos posicionaremos en la barra de herramientas y presionaremos el botnsecundario del mouse sobre la parte gris de la barra de herramientas desplegada yseleccionaremos la opcinAgregar fichadel men emergente, como se muestra en lafigura 1.

  • Figura 1

    Cuando seleccionamos esta opcin, aparecer una caja de texto en la barra deherramientas dnde podremos escribir el nombre que consideremos oportuno, comose muestra en la figura 2.

    Personalizacin de un grupo de controles y componentes en Visual Studio 2008

    Figura 2

    Si se hace la siguiente pregunta, cmo cambiar el nombre de una seccin ya creadao una existente?, sepa que deber realizar los siguiente pasos.

    Haga clic con el botn secundario del mouse sobre la seccin sobre la que deseacambiar el nombre y seleccione la opcinCambiar nombre de fichacomo semuestra en la figura 3.

    Figura 3

    De igual forma, puede cambiar tambin el nombre de los controles o componentesinsertados.

  • Para hacer eso, haga clic con el botn secundario del mouse sobre un control ocomponente y seleccione la opcinCambiar nombre de elementocomo semuestra en la figura 4.

    Figura 4

    Visual Basic 2008, nos proporciona un amplio conjunto de opciones depersonalizacin del entorno de trabajo, para que se ajuste a las exigencias de losdesarrolladores.

    FAQ:Qu ocurre si me equivoco personalizando mi barra deherramientas?Visual Studio 2008 nos proporciona la posibilidad de resetear orestaurar el estado inicial de la barra de herramientas en el entornode desarrollo. Para hacer esto, haremos clic con el botn secundariodel mouse la barra de herramientas y seleccionaremos la opcinRestablecer cuadro de herramientasdel men emergente, comose muestra en la siguiente figura.

  • Ojo!, al seleccionar esta opcin, perderemos todas lasmodificaciones que hayamos realizado sobre la barra deherramientas.

    Otros controles a tener en cuenta

    Dentro del entorno deVisual Studio 2008y en .NET en general, tenemos laposibilidad de utilizar diferentes controles muy interesantes que conviene comentar.

    Uno de estos controles, se llamaWebBrowser, tal y como se indica en la figura 5.

    Control WebBrowser en el Cuadro de herramientas

    Figura 5

  • Este control es la representacin de un control especfico para mostrar contenidoXML o contenido HTML, como si de una pgina Web se tratara.

    Sirva el siguiente ejemplo de cdigo fuente para demostrar como usar el control ycomo se muestra dicho control en una aplicacin Windows.

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

    Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal eAs System.EventArgs) Handles MyBase.Load

    Me.webBrowser1.Navigate("http://localhost/Bienvenido.aspx")

    End Sub

    End Class Form1

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

    Control WebBrowser en ejecucin

    Figura 6

    Hay ms controles que representan una novedad para el desarrollador de .NET,como puede ser por ejemplo, el controlMaskedTextBox, como se muestra en lafigura 7.

    http://localhost/Bienvenido.aspx
  • Control MaskedTextBox en Visual Basic 2008

    Figura 7

    Sin embargo, hay otros controles clsicamente demandados por los desarrolladores,como los controles de accesos a puertos COM y puertos serie, como es el caso delcontrolSerialPortque se muestra en la figura 8.

    Control SerialPort en Visual Basic 2008

    Figura 8

    No es cuestin de repasar cada uno de los controles que el programador puedeencontrar enVisual Studio 2008, sin embargo, no me gustara dejar de comentar,uno de los controlesms usados y tiles para las aplicaciones Windows, que tiene asu vez su equivalente para el desarrollo de aplicaciones Web en ASP.NET. Me refieroal controlMonthCalendarque se muestra en la figura 9.

    Control MonthCalendar en Visual Basic 2008

    Figura 9

    Este control, que se muestra en la figura 10 cuando lo insertamos en un formulario,es un control que nos facilita la entrada de fechas en el sistema y permiteasegurarnos, que la fecha seleccionada es una fecha vlida.

  • Control MonthCalendar insertado en un formulario Windows

    Figura 10

    Ver vdeo de esta leccin-video en Visual Studio 2005 vlido paraVisual Studio 2008

  • IntroduccinHasta ahora, hemos aprendido a identificar las partes ms importantes del entornode desarrollo deVisual Studio 2008, hemos visto igualmente como se separan loscontroles y componentes, y hemos visto tambin que existe un grupo de solapasdonde podemos aadir nuestros propios controles y componentes, incluso hemosaprendido a crear nuestro propio grupo o seccin de controles y componentes, en elque podemos tambin incluir los controles y componentes que por ejemplohayamosdesarrollado nosotros mismos, sin embargo, para poder insertar ah un control ocomponente desarrollado por nosotros, deberamos aprender a crearlos.

    Eso es justamente lo que veremos a continuacin adems de ver otras tcnicas queconviene repasarantes de aprender a desarrollar nuestros propios controles ycomponentes.Por eso, lo primero que haremos ser aprender a desenvolvernos adecuadamente enel entorno de desarrollo con los controles que ya conocemos.

    Mdulo 3 - Captulo 3

    1.Dominando los controles en el entorno de trabajo

    2.Creacin de controles en tiempo de ejecucin

    3.Creacin de una matriz de controles

    4.Creacin de controles nuevos

    5.Otras consideraciones

    Ver vdeo de esta leccin-video en Visual Studio 2005 vlido paraVisual Studio 2008

  • Mdulo 3 - Captulo 3

    1. Dominando los controles en el entorno de trabajoSi queremos aprender a crear nuestros propios controles para poder distribuirlos yutilizarlos en nuestro entorno, lo mejor es dominar el uso de los controles en nuestroentorno de desarrollo.

    Ya hemos visto anteriormente como insertar un control a nuestro formulario, peroquizs no sepamos como manejarlos de forma eficiente en ese formulario.

    Inserte en un formulario Windows por ejemplo, tres controlesButtoncomo semuestra en la figura 1.

    Controles Button insertados en un formulario Windows

  • Figura 1

    Como podemos observar, los controles estn dispuestos de una forma desordenada,ya que al insertarlos por ejemplo haciendo doble clic tres veces sobre un controlButton, stos quedan dispuestos anrquicamente en el formulario.

    Separe los controlesButtonde forma que queden ahora esparcidos en el formulariode alguna manera tal ycomo se muestra en la figura 2.

    Controles Button separados en el formulario

    Figura 2

    Seleccione todos los controlesButtoncomo se mostraba en la figura 2 y seleccionedel men las opcionesFormato > Alinear > Lados izquierdoscomo se indica enla figura 3.

    Los controles Button quedarn ordenados correctamente dentro del formulario

    Figura 3

    Sin embargo, podemos extender el uso de las propiedades especiales para alinearloscontroles en un formulario.

  • Por ejemplo, ahora que tenemos los controlesButtonalienados correctamente,podemos hacer uso de la opcin de menFormato > Espaciado vertical > Quitarcomo se indica en la figura 4.

    Otras opciones especiales, nos permiten alinear o trabajar con los controles de formarpida y segura

    Figura 4

    En este caso, los controles quedarn dispuestos en el formulario como se indica en lafigura 5.

    Controles alineados y espaciados segn la eleccin de opciones del entorno

    Figura 5

    Como podemos apreciar, alinear los controles en el entorno es realmente sencillo.Visual Studio 2008 nos proporciona una gran cantidad de opciones para llevar a caboeste tipo de tareas.

  • Incluso si nos encontramos con un controlesde diferente tamao entre s como semuestra en la figura 6, podemos hacer uso de la opcin del menFormato >Igualar tamaopermitindonos cambiar el tamao de los controles seleccionadosdentro del formulario Windows.

    Controles de diferentes tamaos dispuestos en el formulario Windows

    Figura 6

    El men que nos permite cambiar los tamaos de los controles insertados en unformularioposee diferentes posibilidades.

    En nuestro caso, seleccionaremos del men, la opcinFormato > Igualar tamao> Ambostal y como se muestra en la figura 7.

    Cambiando los tamaos ancho y alto de los controles seleccionados de un formulario

  • Figura 7

    Una vez seleccionada esta opcin, los controles se modificarn con el mismo tamaotal y como se muestra en la figura 8.

    Controles del formulario con su tamao modificado

    Figura 8

    Una vez seleccionada esta opcin, los controles se modificarn con el mismo tamaotal y como se muestra en la figura 8.

    Truco:Suponiendo que tengamos tres controlesButtonde diferentestamaos y que queramos que todos tengan el mismo tamao que elsegundo de sus controles, seleccionaremossiemprecomo primercontrol, el control que queremos como base de tamao para el restode controles, y posteriormente con la teclaCtrlseleccionaremos unoa uno el resto de controles.

    Sin embargo, para alinear los controles en un formulario tenemos ms opciones.Hemos visto algunas de ellas, quizs las ms habituales, pero como podemos deducirdel menFormato, podremos alinear los controles, espaciarlos entre s horizontal overticalmente, modificar su tamao, centrarlos en el formulario horizontal overticalmente, etc.

    Por otro lado, Visual Studio 2008, nos proporciona una utilidad en tiempo de diseomuy til.Se trata de las guas de representacin que veremos en tono azul claro, y queaparecen cuando movemos un control en el formulario.

  • Estas guas indican la situacin y posicin de un control respecto a otro prximo.La representacin de estas guas que se muestran en la figura 9, nos facilitaenormemente la disposicin de los controles en un formulario.

    Guas o reglas de direccin o separacin entre controles

    Figura 9

    Ver vdeo de esta leccin-video en Visual Studio 2005 vlido paraVisual Studio 2008

  • Mdulo 3 - Captulo 3

    2. Creacin de controles en tiempo de ejecucin

    Prcticamente todo en .NET son objetos. Los controles tambin, as que para aadirun control a un formulario en tiempo de ejecucin, deberemos hacerlo tratndolocomo un objeto.

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

    El siguiente ejemplo de cdigo, crea un controlButtonen tiempo de ejecucin.

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles MyBase.Load

    ' Declaramos el objeto Button

    Dim MiControl As New Button

    ' Declaramos un nombre al control (si queremos)

    MiControl.Name = "btn1"

    ' Cambiamos algunas de sus propiedades

    MiControl.Text = "Ejemplo de Botn"

    MiControl.Top = 50

    MiControl.Left = 50

  • MiControl.Width = 200

    MiControl.Height = 50

    ' Aadimos el control al Formulario

    Me.Controls.Add(MiControl)

    End Sub

    En la figura 1 podemos ver el resultado en ejecucin del cdigo escritoanteriormente.

    Para ejecutar nuestra aplicacin, presionaremos el botnF5, que es la formahabitual de ejecutar una aplicacin.

    Creacin de un control en tiempo de ejecucin en Visual Basic 2008

    Figura 1

    Otra de las caractersticas de los controles, es la posibilidad de manipular loscontroles en tiempo de ejecucin. Sin embargo, en nuestro caso, vamos a modificarla propiedadTextdel controlButtonque hemos insertado en tiempo de ejecucin.

    Para hacer esto, lo ms habitual es poner el nombre del control, su propiedad y elvalor correspondiente. En nuestro caso, el cdigo quedara como el que se indica acontinuacin:

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles MyBase.Load

    ' Declaramos el objeto Button

    Dim MiControl As New Button

    ' Declaramos un nombre al control (si queremos)

  • MiControl.Name = "btn1"

    ' Cambiamos algunas de sus propiedades

    MiControl.Text = "Ejemplo de Botn"

    MiControl.Top = 50

    MiControl.Left = 50

    MiControl.Width = 200

    MiControl.Height = 50

    ' Aadimos el control al Formulario

    Me.Controls.Add(MiControl)

    ' Modificamos la propiedad Text del control insertado

    btn1.Text = "Otro texto"

    End Sub

    Analizando este cdigo, parece estarbien escrito, pero al presionarF5para ejecutarnuestro proyecto, nos encontramos con que Visual Basic 2008 nos muestra un error.Nos indica quebtn1no est declarado. Qu ocurre?.

    Al buscar la clase de ensamblados de la aplicacin, el controlButtonde nombrebtn1no existe, por lo que Visual Basic 2008 detecta que debemos declarar elcontrol, sin embargo y en nuestro caso, esta declaracin la hacemos en tiempo deejecucin. Cmo acceder a la propiedadTextdel controlButtoncreado en tiempode ejecucin?.

    El siguiente cdigo resuelve esta duda:

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles MyBase.Load

    ' Declaramos el objeto Button

    Dim MiControl As New Button

    ' Declaramos un nombre al control (si queremos)

    MiControl.Name = "btn1"

    ' Cambiamos algunas de sus propiedades

    MiControl.Text = "Ejemplo de Botn"

    MiControl.Top = 50

    MiControl.Left = 50

    MiControl.Width = 200

    MiControl.Height = 50

  • ' Aadimos el control al Formulario

    Me.Controls.Add(MiControl)

    ' Modificamos la propiedad Text del control insertado

    CType(Me.FindForm.Controls("btn1"), Button).Text = "Otrotexto"

    End Sub

    Bsicamente, utilizamos una conversin explcita del objeto devuelto por la bsquedarealizada en los controles del formulario principal, que ser un controlButtondenombrebtn1, para poder as, cambiar la propiedadTextde este control.

    An as, tambin podramos haber accedido a la propiedadTextdel control medianteotra accin complementaria, como se muestra en el siguiente cdigo:

    ' Declaramos el objeto Button

    Dim MiControl As New Button

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles MyBase.Load

    ' Declaramos un nombre al control

    MiControl.Name = "btn1"

    ' Cambiamos algunas de sus propiedades

    MiControl.Text = "Ejemplo de Botn"

    MiControl.Location = New Point(50, 50)

    MiControl.Size = New Size(200, 50)

    ' Aadimos el control al Formulario

    Me.Controls.Add(MiControl)

    End Sub

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

    MiControl.Text = "Otro texto"

    End Sub

    Ojo!:Tenga en cuenta que esta accin se puede realizar si la declaracindel objetoButtonest dentro del mismo mbito de llamada de la

  • propiedadText. Por esa razn, hemos sacado la declaracinMiControl del objetoButtonfuera del procedimiento de creacindinmica del control, pero tenga en cuenta tambin, que en estecaso, tendremos declarada siempre en memoria la variableMiControl. El uso de la conversin (Button) es siempre ms seguro.

    El caso anterior utilizando nicamente la conversin explcita, (Button), quedaracomo se detalla a continuacin (para estos dos ejemplos, he aadido adems uncontrolButtonal formularioWindows, desde el cul cambiaremos la propiedadTextdel controlButtoncreado en tiempo de ejecucin):

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles MyBase.Load

    ' Declaramos el objeto Button

    Dim MiControl As New Button

    ' Declaramos un nombre al control (si queremos)

    MiControl.Name = "btn1"

    ' Cambiamos algunas de sus propiedades

    MiControl.Text = "Ejemplo de Botn"

    MiControl.Location = New Point(50, 50)

    MiControl.Size = New Size(200, 50)

    ' Aadimos el control al Formulario

    Me.Controls.Add(MiControl)

    End Sub

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

    CType(Me.FindForm.Controls("btn1"), Button).Text = "Otrotexto"

    End Sub

    Este ejemplo en ejecucin es el que se muestra en la figura 2.

  • Ejecucin del ejemplo anterior en Visual Basic 2008

    Figura 2

    Antes de continuar con el siguiente apartado en el que aprenderemos a crear unarray de controles, comentar que a la hora de posicionar un determinado control enun formularioWindows, lo podemos hacer con las propiedadesTopyLeft, obien,utilizando la propiedadLocation. Lo mismo ocurre con las propiedadesWidthyHeightque pueden ser sustituidas por la propiedadSize.

    El mismo ejemplo de creacin de controles en tiempo de ejecucin utilizando elmtodoLocationySize, quedara como se detalla a continuacin:

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles MyBase.Load

    ' Declaramos el objeto Button

    Dim MiControl As New Button

    ' Declaramos un nombre al control (si queremos)

    MiControl.Name = "btn1"

    ' Cambiamos algunas de sus propiedades

    MiControl.Text = "Ejemplo de Botn"

    ' Propiedad Location

    MiControl.Location = New Point(50, 50)

    ' Propiedad Size

    MiControl.Size = New Size(200, 50)

    ' Aadimos el control al Formulario

    Me.Controls.Add(MiControl)

  • End Sub

    Hasta ahora hemos visto como crear controles en tiempo de ejecucin, pero enmuchas ocasiones, nos es til no slo crear un control en tiempo de ejecucin, sinorelacionarlo con un evento.En nuestro ejemplo del controlButton, cuando hacemos clic sobre el control, noocurre nada, y sera interesante mostrar un mensaje o realizar una accindeterminada.

    Para haceresto, deberemos utilizar el mtodoAddHandlerpara asignar un eventoal control creado dinmicamente. El cdigo de nuestro ejemplomejoradoes el quese detalla a continuacin:

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles MyBase.Load

    ' Declaramos el objeto Button

    Dim MiControl As New Button

    ' Declaramos un nombre al control (si queremos)

    MiControl.Name = "btn1"

    ' Cambiamos algunas de sus propiedades

    MiControl.Text = "Ejemplo de Botn"

    MiControl.Location = New Point(50, 50)

    MiControl.Size = New Size(200, 50)

    ' Aadimos el control al Formulario

    Me.Controls.Add(MiControl)

    ' Aadimos el evento Click al control creado dinmicamente

    AddHandler MiControl.Click, AddressOf btn1Click

    End Sub

    Public Sub btn1Click(ByVal Sender As Object, ByVal e AsSystem.EventArgs)

    ' Mostramos un Mensaje

    MessageBox.Show("Soy el Control Button con texto: '" +CType(CType(Sender, Button).Text, String) + "'")

    End Sub

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

  • Ejecucin del ejemplo con asociacin de evento desarrollado en Visual Basic 2008

    Figura 3

    Ver vdeo de esta leccin-video en Visual Studio 2005 vlido paraVisual Studio 2008

  • Mdulo 3 - Captulo 3

    3. Creacin de una matriz de controles

    En el captulo anterior, hemos visto como crear controles en tiempo de ejecucin eincluso como asociar un evento a un control creado dinmicamente en Visual Basic2008, pero, qu ocurre si queremos crear un array o matriz de controles?.

    Podemos simular una matriz de controles de muchas formas. Yo en este ejemplo,aplicar la siguiente forma de llevar a cabo esta tarea:

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles MyBase.Load

    ' Declaramos la variable contador del bucle Para

    Dim I As Byte

    ' Declaramos la variable contador del nmero de controles acrear

    Dim intNumControles As Byte = 5

    ' Iniciamos el bucle Para

    For I = 0 To intNumControles - 1

    ' Declaramos el objeto TextBox

  • Dim MiControl As New TextBox

    ' Le asignamos un nombre al control

    MiControl.Name = "txt1"

    ' Utilizamos la propiedad Tag para almacenar ah el valordel control de la matriz virtual

    MiControl.Tag = I

    ' Le asignamos un tamao en el Formulario Windows

    MiControl.Size = New Size(100, 20)

    ' Le asignamos una posicin en el formulario Windows

    MiControl.Location = New Point(50, 22 * (I + 1))

    ' Le cambiamos la propiedad Text

    MiControl.Text = MiControl.Name + "(" + I.ToString() + ")"

    ' Aadimos el control al Formulario

    Me.Controls.Add(MiControl)

    ' Aadimos el evento Click al control creado dinmicamente

    AddHandler MiControl.Click, AddressOf txt1Click

    Next

    End Sub

    Public Sub txt1Click(ByVal Sender As Object, ByVal e AsSystem.EventArgs)

    ' Mostramos un Mensaje

    MessageBox.Show("Control " + CType(Sender,TextBox).Tag.ToString())

    End Sub

  • Nuestro ejemplo de demostracin en ejecucin esel que se puede ver en la figura 1.

    Ejecucin de la simulacin de una matriz de controles

    Figura 1

    Obviamente, existen diferentes formas y tcnicas de simular un array o matriz decontroles. Sirva esta que hemos visto, como ejemplo de lo que se puede hacer, peropara nada se trata de una norma o regla fija.

    Debemos destacar que en .NET no existe el concepto de array o matriz de controlesya que sta, es una caracterstica no propia del lenguaje, pero que para ciertasocasiones conviene conocer.

    Ver vdeo de esta leccin-video enVisual Studio 2005 vlido paraVisual Studio 2008

  • Mdulo 3 - Captulo 3

    4. Creacin de controles nuevos

    Ya hemos visto la diferencia ms genrica entre un componente y un control, peroan no sabemos como desarrollar nuestros propios controles en Visual Basic 2008.

    En primer lugar y antes de adentrarnos en la creacin de nuestros propios controlescon Visual Basic 2008, debo indicarle que debemos obviar todo lo relacionado con losActiveX OCX y ActiveX en general.

    En Visual Basic 2008, la palabra ActiveX ya no existe. El modelo de programacin hacambiado y por eso, los componentes y controles se generan ahora siguiendo otrasnormas que aprenderemos a utilizar de forma inmediata.

    IniciaremosVisual Studio 2008y seleccionaremos un proyecto de tipoBiblioteca declases. En el nombre de proyecto, podemos indicarle el nombre que deseemos tal ycomo se muestra en la figura 1, y a continuacin presionaremos el botnOK.

  • Seleccin de nuevo proyecto Biblioteca de clases en Visual Basic 2008

    Figura 1

    La diferencia mayor que reside entre el desarrollo de componentes y controles en.NET, es que en lugar de heredar de la claseComponentcomo en el caso de lacreacin de los componentes, se ha de heredar de la claseControloSystem.Windows.Forms.UserControl.

    El tipo de proyecto seleccionado no posee por defecto como ocurre con los controlesActiveX, de la superficie contenedora sobre la cul podremos insertar otros controleso realizar las acciones que consideremos pertinentes para crear as nuestro controlpersonalizado.

    En este caso, la superficie contenedora la deberemos crear aadiendo las referenciasnecesarias a nuestro programa.

    Haga clic con el botn secundario del mouse sobre el proyecto o solucin de laventanaExplorador de solucionesy a continuacin, seleccione la opcinPropiedades del men emergente.A continuacin, agreguelas referencias a las libreras de clasesSystem.DrawingySystem.Windows.Forms.Por ltimo, escriba las siguientes instrucciones bsicas.

    Imports System.ComponentModel

    Imports System.Windows.Forms

    Imports System.Drawing

    Public Class Class1

    Inherits UserControl

  • End Class

    En este punto, nuestra clase habr sido transformada en la clase contenedora de uncontrol que es la que puede verse en la figura 2.

    Superficie contenedora por defecto de un control

    Figura 2

    An as, sino quiere realizar esta accin, otra forma de tener lista la superficiecontenedora del control, es la deeliminar la clase del proyecto y presionar el botnsecundario del mouse sobre la ventana delExplorador de solucionesy seleccionar laopcin deAgregar > Nuevo elemento...del men emergente.De las opciones que salen, (ver figura 2B), deberamos seleccionar entonces laplantillaControl de usuario.

    Seleccionar un control de usuario

    Figura 2B