1) Aplicacin listboxt: El control ListBox permite aadir elementos en
forma de lista y tambin poder seleccionar elementos de la misma para
trabajar los datos. Este control permite seleccionar un elemento solo o varios de ellos, utilizando la propiedad Multiselect. Sintaxis: CC++ F# VB publicListBox.!bjectCollection "tems # $et% & Por ejemplo si 'uisiramos a$re$ar un elemento a un control llamado List( en el evento Clic) de un bot*n, debemos escribir el nombre del ListBox y presionar el +.+. ,isual Basic desple$ar- la lista de propiedades y mtodos del control List, en ella buscamos el mtodo .dd"tem, como muestra la ima$en/
2) Contbobox: un componente ComboBox permite 'ue el usuario seleccione elementos individuales en una lista desple$able. ComboBox puede ser est-tico o editable. 0n componente ComboBox editable permite 'ue el usuario introduzca texto directamente en el campo de texto, situado en la parte superior de la lista. 1i la lista desple$able alcanza el final del documento, se abre arriba en vez de abajo. El componente ComboBox consta de tres subcomponentes/ los componentes BaseButton, 2ext"nput y List. En un componente ComboBox editable, s*lo el bot*n constituye el -rea activa, no el cuadro de texto. En el caso de un componente ComboBox est-tico, el bot*n y el cuadro de texto constituyen el -rea activa. El -rea activa responde abriendo o cerrando la lista desple$able. Sintaxis: ComboBox//1ize% ComboBox//3rop3o4n1tyle% ComboBox//3ra4Mode% ComboBox//2ab"ndex% ComboBox//1orted% ComboBox//2ext% ComboBox//Location% ComboBox//add56ey7ress% ComboBox//add53ra4"tem% ComboBox//add5Measure"tem Ejemplo: 1. En el "3E de ,isual 1tudio, car$ue el arc8ivo de soluci*n comboboxctl.sln. 2. En el Explorador de soluciones, 8a$a clic con el bot*n secundario del mouse en la soluci*n ComboBoxCtl. 3. En el men9 contextual, 8a$a clic en Generar. 4. En el men9 Depurar, 8a$a clic en niciar. La aplicaci*n muestra dos cuadros combinados rellenos con colores 'ue controlan los colores del cuadro en la es'uina inferior derec8a. El aspecto de estos cuadros combinados est- determinado por el colecci*n de casillas de verificaci*n y cuadros combinados de la derec8a. 7or ejemplo, al seleccionar el estilo +lista desple$able+ y el modo 3ra4 en +fijo :o4ner dra4 fixed;+, los cuadros combinados de la iz'uierda muestran el nombre del color mediante el color correspondiente junto con un rect-n$ulo de ese color. El c*di$o de la implementaci*n est- en ComboBoxCtl//combo53ra4"tem, al 'ue se llama para cada elemento cuando el modo de dibujo sea +fijo+. 3) !s"boxt: Muestra un mensaje en un cuadro de di-lo$o, espera a 'ue el usuario 8a$a clic en un bot*n y devuelve un entero 'ue indica el bot*n utilizado. Sintaxis: Public Function MsgBox( _ ByVal Prompt As Object, _ Optional ByVal Buttons As MsgBoxStyle = MsgBoxStyleO!Only, _ Optional ByVal "itle As Object = #ot$ing _ % As MsgBox&esult Ejemplo: En este ejemplo se utiliza la funci*n !s"Box para mostrar un mensaje de error cr<tico en un cuadro de di-lo$o con botones 1< y =o. El bot*n =o se considera la respuesta predeterminada. 2odo ello se consi$ue combinando los valores de constante de !s"Box en una expresi*n numrica. En este caso, si se a$re$a > :la combinaci*n de botones 1<?=o; y (@ :la ventana Mensaje cr<tico; y AB@ :el se$undo bot*n como bot*n predeterminado; se obtiene un total de AC@. El valor 'ue devuelve la funci*n !s"Box depende del bot*n 'ue elija el usuario/ 1< devuelve un valor @% =o un valor C. 'im msg As String 'im title As String 'im style As MsgBoxStyle 'im response As MsgBox&esult msg = ('o you )ant to continue*( + 'e,ine message style = MsgBoxStyle'e,aultButton- Or _ MsgBoxStyle.ritical Or MsgBoxStyle/es#o title = (MsgBox 'emonstration( + 'e,ine title + 'isplay message response = MsgBox(msg, style, title% 0, response = MsgBox&esult/es "$en + 1ser c$ose /es + Per,orm some action 2lse + Per,orm some ot$er action 2n3 0, 4) #ic$e%it: La aplicaci*n puede pe$ar el contenido del 7ortapapeles en el control Dic8 Edit :CDic8EditCtrl; utilizando el mejor formato disponible del 7ortapapeles o un formato de 7ortapapeles espec<fico. 2ambin se puede determinar si un control Dic8 Edit es capaz de pe$ar un formato de 7ortapapeles. 7uede copiar o cortar el contenido de la selecci*n actual utilizando la funci*n miembro Copy o Cut. 3e i$ual forma, puede pe$ar el contenido del 7ortapapeles en un control Dic8 Edit utilizando la funci*n miembro 7aste. El control pe$a el primer formato disponible 'ue reconoce, 'ue es se$uramente el formato m-s descriptivo. 5) nte&a': Las "nterfaces definen las propiedades, mtodos y eventos 'ue pueden implementar las clases. Las interfaces le permiten definir caracter<sticas como $rupos pe'ueos de propiedades, mtodos y eventos estrec8amente relacionados% de esta forma se reducen los problemas de compatibilidad, ya 'ue pueden desarrollarse implementaciones mejoradas para las interfaces sin poner en peli$ro el c*di$o existente. 1e pueden a$re$ar nuevas caracter<sticas en cual'uier momento, mediante el desarrollo de implementaciones e interfaces adicionales. Ejemplo: 7or ejemplo, en el c*di$o si$uiente se define una interfaz con una funci*n, una propiedad y un evento. 0nter,ace 0Asset 24ent .omitte3.$ange(ByVal Success As Boolean% Property 'i4ision(% As String Function 5et0'(% As 0nteger 2n3 0nter,ace 6) nter&a' %e m(ltiples %ocumentos/ :M9ltiple 3ocument "nterface;, "nterfaz de M9ltiples 3ocumentos. Es una ventana 'ue act9a como fondo de una aplicaci*n y es el contenedor de formularios. La interfaz de m9ltiples documentos fue diseada para simplificar el intercambio de informaci*n, entre documentos dependientes todos de una misma aplicaci*n. .s<, en lu$ar de tener m9ltiples copias abiertas de la misma aplicaci*n, tendremos una sola copia y m9ltiples ventanas de documentos abiertas. Ejemplos: 0n ejemplo de aplicaci*n con una interfaz M3" es la 8oja de c-lculo Microsoft Excel o Calc :!pen!ffice;. Cuando se ejecuta una aplicaci*n M3" aparece en primer lu$ar una ventana de aplicaci*n :ventana padre;, la cual proporciona un espacio de trabajo para todas las ventanas de documento 'ue se creen :ventanas 8ija;. 3e esta forma el usuario puede trabajar con varios documentos a la vez, cada uno en su propia ventana, entendiendo por documento un conjunto de datos :texto, im-$enes, etc.;. 7) Creacin %e !D: Para crear un &ormulario !D primario en tiempo %e %ise)o 1. Cree una aplicaci*n para Eindo4s. 7ara obtener m-s informaci*n, vea Crear un proyecto de aplicaci*n para Eindo4s. 2. En la ventana Propie%a%es, establezca la propiedad "sM3"Container en true. .s< se desi$na el formulario como contenedor M3" para ventanas secundarias. 3. .rrastre un componente !ain!enu del Cua%ro %e $erramientas al formulario. Cree un elemento de men9 de nivel superior con la propiedad *ext establecida en +Arc$i,o, con elementos de submen9 denominados +-ue,o y +Cerrar. Cree tambin un elemento de men9 de nivel superior denominado +Ventana. El primer men9 crear- y ocultar- los elementos de men9 en tiempo de ejecuci*n, mientras 'ue el se$undo se encar$ar- del se$uimiento de las ventanas M3" secundarias abiertas. Lle$ado este punto, 8a creado una ventana M3" primaria. 7ara obtener m-s informaci*n acerca de la creaci*n de men9s y elementos de men9, vea .$re$ar men9s y elementos de men9 a formularios Eindo4s Forms. 4. 7resione F. para ejecutar la aplicaci*n. 7ara obtener informaci*n acerca de la creaci*n de ventanas M3" secundarias 'ue funcionen dentro del formulario M3" primario, vea Crear formularios M3" secundarios. Para crear formularios MDI secundarios 1. Cree un formulario primario M3" con una estructura de men9s 'ue conten$a los elementos de men9 Arc$i,o y Ventana de nivel superior y los elementos de men9 -ue,o y Cerrar.7ara obtener m-s informaci*n, vea C*mo/ Crear formularios principales M3". 2. En la lista desple$able 'ue se encuentra en la parte superior de la ventana Propie%a%es, seleccione el elemento de men9 correspondiente al elemento Ventana y establezca el valor de la propiedad MdiList en true. Esto 8abilitar- al men9 Ventana para 'ue manten$a una lista de ventanas secundarias M3" abiertas, con una marca de verificaci*n junto a la ventana secundaria activa. 3. En el Explora%or %e soluciones, 8a$a clic con el bot*n secundario en el proyecto, 8a$a clic en A"re"ar y seleccione A"re"ar nue,o elemento. Este formulario ser- la plantilla de los formularios M3" secundarios. 4. En el cuadro de di-lo$o A"re"ar nue,o elemento, seleccione /in%o0s Form :en ,isual Basic o ,isual C; o Aplicacin %e /in%o0s Forms 12-E*3 :en ,isual CGG; desde el panelPlantillas. En el cuadro -ombre, asi$ne al formulario el nombre FormA. Ha$a clic en el bot*n Abrir para a$re$ar el formulario al proyecto. 1e abrir- el Dise)a%or %e /in%o0s Forms, donde se mostrar- el formulario FormA. 5. En el Cua%ro %e $erramientas, arrastre un control #ic$*extBox al formulario. 6. En la ventana Propie%a%es, establezca la propiedad Anc$or en *op4 5e&t y la propiedad Doc6 en Fill. Esto 8ace 'ue el control Dic82extBox llene por completo el -rea del formulario M3" secundario, aun'ue se cambie el tamao del formulario. 7. Cree un controlador de eventos Clic) para el elemento de men9 -ue,o. 7ara obtener informaci*n sobre c*mo crear controladores de eventos, vea C*mo/ Crear controladores de eventos con el diseador. 8. "nserte el c*di$o si$uiente para crear un nuevo formulario M3" secundario cuando el usuario 8a$a clic en el elemento de men9 -ue,o. protecte3 4oi3 M'0.$il3#e)_.lic6(object sen3er, System24entArgs e%7 Form- ne)M'0.$il3 = ne) Form-(%8 99 Set t$e Parent Form o, t$e .$il3 )in3o) ne)M'0.$il3M3iParent = t$is8 99 'isplay t$e ne) ,orm ne)M'0.$il3S$o)(%8 9. En ,isual CGG, a$re$ue la si$uiente directiva include al principio de Form(.8/ include +FormA.8+ 10. 7resione FB para ejecutar la aplicaci*n. !bserve 'ue al seleccionar -ue,o en el men9 Arc$i,o, puede crear nuevos formularios M3" secundarios de los 'ue se 8ar- un se$uimiento en el men9 Ventana 8) Dise)o %e men(: En el primer caso necesitamos aadir +control+ MainMenu de la barra de 8erramientas. Cuando se pulsa en el control aadido, podemos editar los distintos men9s 'ue dispondremos. La verdad es 'ue al principio puede parecer un poco complicada la forma de crear los men9s, pero al final acaba uno por acostumbrarse... sobre todo si sabes al$unos +trucos+ para no perder la paciencia. Para a"re"ar un men( 1. En el men9 .rc8ivo, 8a$a clic en =uevoproyecto. 2. En el cuadro de di-lo$o =uevo proyecto, en el panel 7lantillas, 8a$a clic en .plicaci*n para Eindo4s. 3. En el cuadro =ombre, escriba Menus y 8a$a clic en .ceptar. 1e abre un nuevo proyecto de formularios Eindo4s Forms. 4. En el Cuadro de 8erramientas, arrastre un control Menu1trip 8asta el formulario. "ndependientemente de d*nde lo coloca, el control Menu1trip se asocia a la parte m-s alta del formulario. Es posible 'ue 8aya observado un icono Menu1trip( a$re$ado a un -rea $ris, bajo el formulario. Esta -rea se denomina bandeja de componentes. 1i 8ace clic fuera del controlMenu1trip, desaparecer-% si desea 'ue vuelva a aparecer, 8a$a clic en el icono Menu1trip(. 5. En el formulario, 8a$a clic en el control Menu1trip, escriba File y, a continuaci*n, presione Entrar. .parecen nuevos cuadros para entradas de men9 adicionales debajo y a la derec8a del primer elemento de men9. Istos constituyen espacios para los elementos adicionales del men9. 7uede continuar a$re$ando elementos de men9 en cual'uier direcci*n 8asta 'ue se complete el men9. 6. En el cuadro situado bajo el primer cuadro, escriba Exit y presione Entrar. 7. Ha$a doble clic en el men9 1alir para abrir el Editor de c*di$o. 8. En el controlador de eventos Exit2ool1tripMenu"tem5Clic), escriba el si$uiente c*di$o. .pplication.Exit:; 9. 7resione FB para ejecutar el pro$rama. Con el mouse, 8a$a clic en el men9 .rc8ivo y, a continuaci*n, en 1alir. 1e cierra la aplicaci*n. 9) #eali'acin %e llama%as &orm: 7ara realizar una llamada se$ura para subprocesos a un control de Forms Consulte la propiedad "nvo)eDe'uired del control. 1i la propiedad "nvo)eDe'uired devuelve true, llame a "nvo)e con un dele$ado 'ue realice la llamada real al control. 1i la propiedad "nvo)eDe'uired devuelve false, llame directamente al control. 10) Vali%acin 7 %epuracin %e %ato: 8erramientas %e Depuracin ,isual Basic proporciona 8erramientas interactivas para localizar errores en tiempo de ejecuci*n y errores en la l*$ica del pro$rama. 1e puede acceder a todas las 8erramientas de depuraci*n empleando el men9 3epuraci*n o la barra de 8erramientas 3epuraci*n. Las 8erramientas de depuraci*n en ,isual Basic incluyen/ Puntos %e interrupcin 7 expresiones %e interrupcin Establece un punto de interrupci*n para detener un pro$rama en ejecuci*n. 1e puede establecer un punto de interrupci*n en tiempo de diseo o en tiempo de ejecuci*n mientras se est en modo de interrupci*n. Expresiones %e inspeccin Emplee las expresiones de inspecci*n para examinar una variable o expresi*n en particular. El valor de cada expresi*n de inspecci*n es actualizado en los puntos de interrupci*n 9pciones pas a paso 0se las opciones paso a paso para ejecutar porciones de c*di$o ya sea una instrucci*n o procedimiento a la vez. Pila %e llama%as Emplee 7ila de llamadas para visualizar todas las llamadas a procedimientos activas y rastrear la ejecuci*n de una serie de procedimientos anidados. 5a ,entana inme%iato En modo de interrupci*n, se puede probar una sentencia ejecutable escribindola en la ventana inmediato. ,isual Basic ejecuta la sentencia inmediatamente de modo 'ue se pueda evaluar el c*di$o. 5a ,entana locales Esta ventana autom-ticamente visualiza todas las variables declaradas en el procedimiento actual, junto con sus valores ,alidaci*n de 3atos 1e puede prevenir al$unos errores en el in$reso de datos y mejorar el uso de una aplicaci*n validando informaci*n mientras es in$resada a los campos de la aplicaci*n. Vali%acin %e %atos 1e puede prevenir al$unos errores en el in$reso de datos y mejorar el uso de una aplicaci*n validando informaci*n mientras es in$resada a los campos de la aplicaci*n. #estriccin %e 9pciones con Controles 0na manera de ase$urar in$resos v-lidos es restrin$iendo el n9mero de opciones 'ue un usuario puede esco$er. 7or ejemplo, se puede emplear un cuadro de lista para permitir a los usuarios seleccionar un nombre de un producto en un formulario. 3ebido a 'ue los usuarios deben esco$er un producto de una lista predefinida, no podr-n in$resar un nombre de producto no v-lido. 2ambin se pueden usar botones de opci*n para un n9mero pe'ueo de opciones, o casillas de verificaci*n para opciones de tipo booleanas.
:so %e la propie%a% !ax5en"t$ La propiedad MaxLen$t8 determina la lon$itud m-xima de una cadena en un cuadro de texto. El sistema emitir- un sonido :beep; cuando el usuario trate de escribir una cadena 'ue exceda la lon$itud m-xima. 1i se desea visualizar un mensaje de error, se necesita interceptar la tecla oprimida en el evento 6ey7ress. :so %e la propie%a% 5oc6e% La propiedad Loc)ed determina si los usuarios pueden modificar los datos en un cuadro de texto. 1i la propiedad Loc)ed es establecida a 2rue, los usuarios s*lo pueden ver y copiar los datos de un cuadro de texto. :so %el E,ento ;e7Press para Vali%ar Datos 1e pueden emplear los eventos 6ey7ress, 6ey3o4n y 6ey0p para validar datos mientras el usuario escribe. 1e puede prevenir 'ue el usuario in$rese ciertos caracteres :por ejemplo, puede limitar el in$reso de datos a valores numricos;. 1e puede tambin modificar los datos mientras son in$resados :por ejemplo, puede convertir todos los caracteres a may9sculas;. El evento 6ey7ress tiene lu$ar cuando el usuario in$resa un car-cter .1C"" est-ndar. Esto no incluye la mayor<a de las teclas especiales, tales como las teclas de funci*n, las teclas direccionales, o la tecla 3ELE2E. 7ara responder a estas teclas se debe emplear los eventos 6ey3o4n y 6ey0p. El si$uiente c*di$o cambia los caracteres a may9sculas mientras el usuario escribe. -*#9D:CC9- Controles basados en Java1cript 'ue 3ream4eaver pone a nuestra disposici*n utilizando su librer<a 1pry. Estos controles 8ar-n 'ue tus p-$inas se muestren de una forma m-s profesional, vistosa y ordenada. Estos controles son completamente confi$urables y adem-s tambin aceptan modificaciones en su estilo utilizando C11. 3e 8ec8o el estilo inicial 'ue muestran es muy b-sico, por lo 'ue no deber<as tener problemas para modificarlo. Cuando se 8ace referencia a KControl .vanzadoL se 'uiere indicar la aplicaci*n de estrate$ias de control autom-tico 'ue trascienden las 'ue usualmente se aplican en control de procesos. Las mismas 'ue pueden aplicarse sobre sistemas M"M! :multivariables;, usando el concepto de desacople de lazos a partir del an-lisis de la matriz de $anancias relativas de Bristol, 'uedando limitado a sistemas con i$ual n9mero de variables de entrada 'ue de salida. BB59G#AFA Biblio$raf<a/ 8ttp/??msdn.microsoft.com?esMes?library?NBe@OPAQ:vRvs.QN;.aspx 8ttp/??msdn.microsoft.com?esMes?library?xy88AeCe:vRvs.((N;.aspx 8ttp/??msdn.microsoft.com?esM es?library?system.4indo4s.forms.listbox.items:vRvs.((N;.aspx 8ttp/??msdn.microsoft.com?esMes?library?(OQzAazd:vRvs.QN;.aspx :-VE#SDAD -9#9#E-*A5 P#VADA G#A- !A#CA5 DE A<AC:C89 FAC:5*AD DE -GE-E#A ESC:E5A DE !A-*E-!E-*9 -D:S*#A5 -:C5E9 C:!A-A CONTROLES AVANZADOS P#9FES9#: CA#59S 59PE= CA*ED#A: P#9G#A!AC9- #EA5=AD9: <A#BE5S <EG:E= C2 >?2@AB2C?. C:!A-D4 !A<9 DE5 >EF?