16742271 Visual Basic Net

Embed Size (px)

Citation preview

  • 7/16/2019 16742271 Visual Basic Net

    1/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno Cueva

    Pgina 11

    INDICE

    Introduccion

    Preambulo Microsoft .Net

    Semana 1 : Introduccin a programacin con ventanas.

    Semana 2 : Uso de Controles Comunes

    Semana 3 : Contenedores de elementos

    Semana 4 : Uso de Controles Comunes

    Semana 5 : Controles contenedores de menus

    Semana 6 : Uso de Controles Cuadros de dialogo

    Semana 7 : Uso de dmi

    Semana 8 : Creacion de Controles

    Semana 9 : desarrollo de una aplicacin

    Semana 11 : Introduccion a OOP

    Semana 12 : Constructores Y Sobrecarga

    Semana 13 : Herencia e Interface

    Semana 14 : Programacion con Ado .NET

    Semana 15 : Trabajo con ambiente Conectado

    Semana 16 : Trabajo en Ambiente Desconectado

    Semana 17 : Uso de DataTable y DataView

    Semana 18 : Creacion Y genaracion de Reportes

    Semana 19 : (Examen Final)

    Semana 20 : (Examen de Recuperacion)

  • 7/16/2019 16742271 Visual Basic Net

    2/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno Cueva

    Pgina 12

    Microsoft .Net

    Consideraciones

    La plataforma .NET de Microsoft es un componente de software que puede seraadido al sistema operativo Windows. Provee un extenso conjunto desoluciones predefinidas para necesidades generales de la programacin deaplicaciones, y administra la ejecucin de los programas escritosespecficamente con la plataforma. Esta solucin es el producto principal en laoferta de Microsoft, y pretende ser utilizada por la mayora de las aplicacionescreadas para la plataforma Windows.

    .NET Framework se incluye en Windows Server 2008 y Windows Vista. Deigual manera, la versin actual de dicho componente puede ser instalada enWindows XP, y en la familia de sistemas operativos Windows Server 2003. Una

    versin "reducida" de .NET Framework est disponible para la plataformaWindows Mobile, incluyendo telfonos inteligentes.

    NET es un proyecto de Microsoft para crear una nueva plataforma de desarrollode software con nfasis en transparencia de redes, con independencia deplataforma de hardware y que permita un rpido desarrollo de aplicaciones.Basado en ella, la empresa intenta desarrollar una estrategia horizontal queintegre todos sus productos,

    Componentes

    Los principales componentes del marco de trabajo son:

    El conjunto de lenguajes de programacin La Biblioteca de Clases Base o BCL El Entorno Comn de Ejecucin para Lenguajes o CLR por sus siglas

    en ingls.

    Debido a la publicacin de la norma para la infraestructura comn delenguajes (CLI por sus siglas en ingls), el desarrollo de lenguajes se facilita,por lo que el marco de trabajo .NET soporta ya ms de 20 lenguajes deprogramacin y es posible desarrollar cualquiera de los tipos de aplicacionessoportados en la plataforma con cualquiera de ellos, lo que elimina lasdiferencias que existan entre lo que era posible hacer con uno u otro lenguaje.

    Algunos de los lenguajes desarrollados para el marco de trabajo .NET son:C#, Visual Basic, C++, J#, Perl, Python, Fortran, Cobol y PowerBuilder.

    Common Language Runtime (CLR)

  • 7/16/2019 16742271 Visual Basic Net

    3/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno Cueva

    Pgina 13

    Common Language Runtime

    Estructura interna delentorno de ejecucin enlenguaje comn (CLR

    por sus siglas en ingls).

    Este es el lenguaje insigniade .NET Framework

    (marco de trabajo.NET) y pretende reunir las

    ventajas de lenguajescomo C, C++ y Visual Basicen uno solo. El CLR es el

    verdadero ncleo delframework de .NET,

    entorno de ejecucin en el que se cargan las aplicaciones desarrolladas en los

    distintos lenguajes, ampliando el conjunto de servicios del sistema operativo(W2k y W2003).

    La herramienta de desarrollo compila el cdigo fuente de cualquiera de loslenguajes soportados por.NET en un cdigo intermedio, el MSIL (MicrosoftIntermediate Lenguaje), similar al BYTECODE de Java. Para generarlo, elcompilador se basa en la especificacin CLS (Common LanguageSpecification) que determina las reglas necesarias para crear el cdigo MSILcompatible con el CLR.

    Caractersticas

    Es el encargado de proveer lo que se llama cdigo administrado, es decir, unentorno que provee servicios automticos al cdigo que se ejecuta. Losservicios son variados:

    Cargador de clases: permite cargar en memoria las clases. Compilador MSIL a nativo: transforma cdigo intermedio de alto nivel

    independiente del hardware que lo ejecuta a cdigo de mquina propiodel dispositivo que lo ejecuta.

    Administrador de cdigo:coordina toda la operacin delos distintos subsistemas delCommon Language Runtime.

    Recolector de basura: eliminade memoria objetos noutilizados.

    Motor de seguridad: administrala seguridad del cdigo que seejecuta.

  • 7/16/2019 16742271 Visual Basic Net

    4/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno Cueva

    Pgina 14

    Biblioteca de Clases Base de .NET

    Diagrama bsico de la Biblioteca de Clases Base.

    La Biblioteca de Clases Base (BCL por sus siglas en ingls) maneja la mayorade las operaciones bsicas que se encuentran involucradas en el desarrollo de

    aplicaciones, incluyendo entre otras:

    Interaccin con los dispositivos perifricos Manejo de datos (ADO.NET) Administracin de memoria Cifrado de datos Transmisin y recepcin de datos por distintos medios (XML, TCP/IP) Administracin de componentes Web que corren tanto en el servidor

    como en el cliente (ASP.NET) Manejo y administracin de excepciones Manejo del sistema de ventanas Herramientas de despliegue de grficos (GDI+) Herramientas de seguridad e integracin con la seguridad del sistema

    operativo Compilacin de cdigo

    Esta funcionalidad se encuentra organizada por medio de espacios de nombresjerrquicos.

    La Biblioteca de Clases Base se clasifica, en cuatro grupos clave:

    ASP.NET y Servicios Web XML Windows Forms

    ADO.NET .NET

    Ensamblados

    Diagrama interno de unEnsamble .NET.

    Un ensamblado es un compiladoEXE o DLL que contiene cdigo

    CIL que se genera desde losdiferentes lenguajes .NET, y quees ejecutado por el CLR. Puedecontener una o varias clases al

    igual que uno o varios namespaces.

    Los ensamblados pueden tener diferentes decoradores que definen el entorno

  • 7/16/2019 16742271 Visual Basic Net

    5/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno Cueva

    Pgina 15

    de ejecucin de los mismos COM+, DCOM, Remouting, etc.

    Semana 1 : Introduccin aprogramacin con ventanas.Interfaces de ventana. Formularios y controlesEs un hecho palpable el que la programacin para Internet, ha ganado en losltimos tiempos una importante cuota de desarrollo, en detrimento de lasaplicaciones basadas en Windows. Sin embargo, todava existe un importanteconjunto de programas que debern seguir funcionando en Windows y quetendrn que migrarse a la plataforma .NET.

    .

    System.Windows.Forms

    Este espacio de nombres contiene todos los tipos del entorno, a travs de loscuales podremos desarrollar aplicaciones compuestas por formulariosWindows, junto a los correspondientes controles que permiten al usuario lainteraccin con el programa.

    La clase Form

    Esta clase contiene todos los miembros para la creacin y manipulacin deformularios.Tras instanciar un objeto de Form, mediante la configuracin de las adecuadaspropiedades, podemos crear formularios estndar, de dilogo, de interfaz

    mltiple o MDI, con diferentes bordes, etc.

    Creacin de un formulario bsico

    A pesar de que en los temas iniciales de este texto, se describi el modo decreacin de una aplicacin basada en formularios Windows, en el presentetema abordaremos la creacin y diseo de formularios, desde un mayornmero de perspectivas, relacionadas con los estilos de formularios, controles,creacin desde cdigo, herencia, etc.

    Comenzaremos creando una aplicacin basada slo en un formulario, pararepasar el diseador de formularios del IDE, y algunas de sus propiedades.

    Iniciaremos por lo tanto Visual Studio .NET, y crearemos un nuevo proyectoVB.NET de tipo aplicacin Windows, proceso este, que ya describimos en losmencionados temas iniciales. En este ejemplo dejaremos el nombre deproyecto que nos propone el propio IDE, que ser WindowsApplication1, o bienotro nmero, si ya hemos creado algn proyecto con este nombre.

  • 7/16/2019 16742271 Visual Basic Net

    6/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno Cueva

    Pgina 16

    Creacin de proyectos Windows Forms

    Visual Basic es un sistema que est diseado para crear programas ya sea tansencillos como los que vamos a ver y tan difciles (aunque es solo unaexpresin) como lo es con base de datos.

    pantalla aparecer los ltimos programas hechos o accedidos con surespectiva fecha, tambin podr abrir cualquier solucin de visual Studio .Net ocrear una nueva.

    Para crear un proyecto haga los siguientes pasos.

    Mostrara la siguiente ventana

  • 7/16/2019 16742271 Visual Basic Net

    7/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno Cueva

    Pgina 17

    Mostrara la ventana

    Nos presentara el siguiente IDE.

  • 7/16/2019 16742271 Visual Basic Net

    8/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno Cueva

    Pgina 18

    Entre las partes del nuevo IDE de Visual Studio .NET tenemos:

    1. Menu Bar2. ToolBars3. Server Explorer Window (Ctrl + Alt + S)4. ToolBox (Ctrl + Alt + X)5. Output Window (Ctrl + Alt + O)6. Status Bar7. Windows Form Designer8. Solution Explorer Window (Ctrl + R)9. Properties Window (F4)10. Search Window (Ctrl + Alt + F3)11. Dynamic Help Window (Ctrl + F1)

    Existen nuevas ventanas en Visual Studio .NET entre las cuales tenemos:

    Class View (Ctrl + Shift + C) Resource View (Ctrl + Shift + E) Macro Explorer (Alt + F8) Document Outline (Ctrl Alt + T) Task List (Ctrl + Alt + K) Command Window (Ctrl + Alt + A) Find Symbol Results (Ctrl +Alt + Y)

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

  • 7/16/2019 16742271 Visual Basic Net

    9/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno Cueva

    Pgina 19

    Si se habrn dado cuenta, siempre se inicia en el visual Basic, y apareceseleccionada la opcin Aplicacin para Windows, justamente lo que ms vamosa utilizar, para programar.

    En donde dice nombre, va a ir el nombre de nuestro proyecto, y en donde diceubicacin es en donde se va a ubicar nuestro proyecto o mejor dicho en donde

    lo vamos a guardar.

    En el proyecto, se habr creado un formulario, elcual seguramente te lo mostrar de formaautomtica. En el lado derecho de la pantalla, versque hay un Panel o Ventana en la que se indica elproyecto actual y se muestran es el SolutionExplorer o Explorardorde Soluciones.

    Para que se muestre el formulario (Form1), hazdoble clic en dicho Elemento del explorador de

    soluciones.

    Lo que vamos a hacer ahora es cambiar la separacin de los puntos que semuestran en el formulario, ese grid o grilla, servir para ajustar los controles(ya sabrs de qu hablo) que se aadan a dicho formulario.

    Por defecto la separacin es de 8x8 puntos o pixels... y vamos a ponerlo en4x4.

    Selecciona el formulario, simplemente con hacer un clic en l essuficiente.

    En el panel de la derecha, debajo del explorador de soluciones, est la ventanade propiedades del elemento que actualmente est seleccionado, en nuestrocaso son las propiedades del

    Form1. Vamos a buscar el elemento GridSize para poder cambiar el tamao de

  • 7/16/2019 16742271 Visual Basic Net

    10/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    110

    separacin. Vers que se muestran dos valores separados por punto y coma,pero tambin hay una cruz a la izquierda de la palabra GridSize, si pulsas enesa cruz, se mostrarn los separados por punto y coma.

    Para aadir controles al formulario, hay que usar labarra de herramientas que est situada en la parte

    izquierda del IDE de Visual Studio .NET, por ejemplopara aadir una etiqueta (Label) y una caja de texto(TextBox), simplemente haz doble clic sobre esoselementos de la barra de herramientas y se aadirn alformulario.

    .

    Te mostrar esto: (realmente te mostrar ms cosas,pero por ahora centrate slo en este cdigo).

    Private Sub Button1_Click(ByVal sender AsSystem.Object, ByVal e As System.EventArgs)

    Handles Button1.Click

    End Sub

    Lo que vamos a hacer ahora, como ya te he dicho, es escribir el cdigo que seejecutar cuando se haga clic en ese botn, lo cual producir el evento clicasociado con dicho botn, ese evento se producir si se hace un clicpropiamente dicho, es decir con el ratn, o bien porque se pulse intro o la barra

    espaciadora cuando el botn tenga el foco.La nomenclatura, (forma de llamar a las cosas), para los eventos de

    Visual Basic siguen el siguiente esquema:

    [nombre del control] [guin bajo] [nombre del evento]

    Pero esto slo es una sugerencia que Visual Basic nos hace, en las versionesanteriores no era una sugerencia, era una imposicin. Podemos dejar elnombre que Visual Basic nos sugiere o podemos poner la lnea de declaracin

  • 7/16/2019 16742271 Visual Basic Net

    11/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    111

    del procedimiento: Handles Button1.Clic, con esto es con lo que elcompilador/intrprete de Visual Basic sabe que este procedimiento es unevento y que dicho evento es el evento Clic del objeto Button1.

    Cuando ese evento se produzca, en este caso vamos a a hacer que semuestre un cuadro de dilogo mostrndonos el nombre que previamente

    hemos escrito en el cuadro de texto. Escribe lo siguiente en el hueco dejadopor el Visual Basic, la lnea que hay entre Private Sub...

    y End Sub

    MsgBox("Hola..: " & TextBox1.Text)

    Ejecutar el proyecto

    que se ejecute el cdigo que hemos escrito o pulsa enel botn play

    que est en la barra de botones. Escribe algo en la cajade textos, que por defecto tendr TextBox1, (que es elvalor que por defecto Visual Basic le asigna a lapropiedad Text de dicho control), pulsa en el botnMostrar y vers que se muestra un cuadro de dilogo dicindote Hola y a

    continuacin lo que hayas escrito en el TextBox

    Nota: Para que tengas ms fcil buscar las propiedades en la ventana depropiedades, puedes hacer que se muestren por orden alfabtico,

    simplemente pulsando en el botn AZ:Tipos de datos

    Son aquellos que identifican que valores se ingresan a las variables deesta forma se realiza un control. Entre estos tipos de datos tenemos.

    Tipo de dato

    Tipo de dato en VB.NET Descripcin

    Byte Byte Entero sin signo de 8 bit

    SByte SByte (tipo de dato noEntero sin signo de 8 bit (tipono acorde con el CLS)

    Int16 Short Entero con signo de 16 bit

    Int32 Integer Entero con signo de 32 bit

    Int64 Long Entero con signo de 64 bit

  • 7/16/2019 16742271 Visual Basic Net

    12/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    112

    UInt16 UInt16 (tipo de dato nonativo

    Entero sin signo de 16 bit (tipono acorde con el CLS)

    UInt32 UInt32 (tipo de dato nonativo)

    Entero sin signo de 32 bit (tipono acorde con el CLS)

    UInt64 UInt64 (tipo de dato no

    Entero sin signo de 64 bit (tipono acorde con el CLS)

    Single Single

    Numero con coma flotante deprecisin simple, de 32 bit

    Double DoubleNumero con coma flotante deprecisin doble, de 64 bit

    Boolean Boolean Valor lgico

    Char Char Caracter Unicode de 16 bit

    Decimal Decimal Valor decimal de 96 bit

    IntPtr IntPtr (tipo de dato nonativo)

    Entero con signo contamao dependiente de lalataforma: 32 bit en

    UIntPtr UIntPtr (tipo de dato nonativo)

    Entero sin signo con tamaodependiente de la plataforma:32 bit en plataformas de 32 bitString String Cadena de caracteres

    TIPO DE CONVERSION

    Las variables pueden convertirse de un tipo de dato a otro, por ejemplo:Una expresin cadena, convertirla a Numero. Veamos un resumen de

    las distintas funciones de conversin de tipos y algunos ejemplos: (estosestn tomados de la ayuda de Visual Basic .NET)

    Nombre de lafuncin

    Tipo dedatos quedevuelve

    Valores del argumento "expresion"

    CBool(expresion) Boolean Cualquier valor de cadena o expresinnumrica.

    CByte(expresion) Byte de 0 a 255; las fracciones se redondean.

    CChar(expresion) Char Cualquier expresin de cadena; los valoresdeben ser de 0 a 65535.

    CDate(expresion) Date Cualquier representacin vlida de una fecha ouna hora.

  • 7/16/2019 16742271 Visual Basic Net

    13/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    113

    CDbl(expresion) Double Cualquier valor Duoble, ver la tabla anteriorpara los valores posibles.

    CDec(expresion) Decimal Cualquier valor Decimal, ver la tabla anteriorpara los valores posibles.

    CInt(expresion) Integer Cualquier valor Integer, ver la tabla anterior paralos valores posibles, las fracciones seredondean.

    CLng(expresion) Long Cualquier valor Long, ver la tabla anterior paralos valores posibles, las fracciones seredondean.

    CObj(expresion) Object Cualquier expresin vlida.

    CShort(expresion)Short Cualquier valor Short, ver la tabla anterior para

    los valores posibles, las fracciones seredondean.

    CSng(expresion) Single Cualquier valor Single, ver la tabla anterior paralos valores posibles.

    CStr(expresion) String Depende del tipo de datos de la expresin.

    -Nota:Todos los objetos de vb.NET tienen unos

    mtodos para realizar conversiones a otrostipos, al menos de nmero a cadena, ya quetienen la propiedad .ToString que devuelve unarepresentacin en formato cadena del nmeroen cuestin (igual que CStr).-

    CType(expresion,Tipo)

    Elindicadoen elsegundoparmetro

    Cualquier tipo de datos

    Val(expresion) Double Una cadena de caracteres.

  • 7/16/2019 16742271 Visual Basic Net

    14/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    114

    Fix(expresion) Dependedel tipo dedatos delaexpresin

    Cualquier tipo de datos

    Int(expresion) Dependedel tipo dedatos delaexpresin

    Cualquier tipo de datos

    Malla de los tipos de datos.

    Para asignar a una variable un valor se procede de la siguiente manera:

    1. Se declara la variable.

    Ejemplo

    Dim va As Integer

    Y las constantes se declaran como constantes precisamente.

    Tambin se pueden declarar varias variables en una misma lnea por ejemplo:

  • 7/16/2019 16742271 Visual Basic Net

    15/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    115

    Dim a,b,c As Short

    En la lnea anterior a, b y c sern de tipo Short Lo anterior se pudo haberescrito como:

    Dim a As Short

    Dim b As Short

    Dim c As Short

    O bien

    Dim a As Short ,b As Short, c As Short

    Igualmente

    Slo tendr un valor de 3

    Todas las variables numricas al no inicializarlas tendrn como valor 0.

    Tipo de conversin

    Las variables pueden convertirse de un tipo de dato a otro, por ejemplo: unaexpresin cadena, convertirla a nmero. Veamos un resumen de las distintasfunciones de conversin de tipos y algunos ejemplos:

    Tipo de dato conversor

    Integer Cint

    Long Clng

    Double Cdbl

    Decimal Cdec

    Char Cchar

    String Cstr

  • 7/16/2019 16742271 Visual Basic Net

    16/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    116

    INSTRUCCIONES CONDICIONALES

    Las instrucciones bsicas de todo lenguaje comprenden las EstructurasCondiciones y los ciclos o Estructuras Repetitivas. Entre ellas veremos:

    Estructura Condicional: If

    Esta estructura se usa para evaluar la condicin de la Variable

    Dim i As Short=5

    If i > 0 then

    Haga cualquier cosa

    End if

    Como tambin se puede evaluar la parte negativa

    If i > 0 then

    Haga cualquier cosaelse

    Tambien haga cualquier cosa

    End if

    Cmo tambin se puede evaluar varias alternativas cmo

    If i =1 0 then

    Muestre el valor

    elseif i=2 then

    Muestre el valor

    else

    Tambien haga cualquier otra cosa

  • 7/16/2019 16742271 Visual Basic Net

    17/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    117

    End if

    Tambin podemos usar la funcin IIF, que funciona de la siguiente forma

    iif(i=1,unootro) o iif(i>0,PositivoNegativo), si tuviramos el siguiente caso

    if B=5 then

    A=1

    Elseif B0 then

    If (A mod 2 )=0 then

    Nmero par

    Else

    Nmero impar

    End if

    Else

    Nmero negativo

    End if

  • 7/16/2019 16742271 Visual Basic Net

    18/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    118

    ESTRUCTURA SELECTIVA: Select case

    Esta instruccin permite evaluar mltiples valores por ejemplo:

    Dim B As Short =30

    Select case B

    Case 5

    Si fuera igual a 5

    Caso Is < 10

    Si fuera menor a 10

    Case Is> 20

    Si fuera mayor a 20

    Case 23 to 25

    Si fuera mayor o igual a 23 y menor e igual a 25

    Case 1 to 2

    Si fuera 1 o 2

    Case 26 to 28,31

    Si fuera mayor o igual a 26 y menor e igual a 28 o si es 31

    Case else

    Si no es ninguna de las anteriores

    End select

    ESTRUCTURAS REPETITIVAS

    FOR.(Para Hasta)

    Sintaxis:

    For var=valorinicial to valorfinal step(incremento)

    (programacion)

    Next var

    El For es una sentencia repetitiva donde var es la variable de control quedara las vueltas.

  • 7/16/2019 16742271 Visual Basic Net

    19/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    119

    Ejemplos:

    Visualize en el formulario los numeros pares del 100 al 2(100,98,96..)

    For i=100 to 2 step 2

    Print i

    Next I

    Genere y visualize numeros del 10 al 90 y al final muestre la suma de ellosDim suma as integer,i as integer

    Suma=0

    For I=10 to 99

    Print I

    Suma=Suma + i

    Next

    Print La suma es & suma

    el & concatena

    DO WHILE.LOOP.(Hacer mientras) , DO. LOOP UNTIL(Hacer Hasta)

    Sintaxis:

    Do while condicion(programacion)

    Loop

    Do

    (programacion)

    Loop Until Condicion

    Genere y visualize numeros del 10 al 90 y al final muestre la suma de ellos

    Do whi le

    Dim i as integer,suma as integer

    Suma=0

    i=10

    Ejemplo:

    Sumar= 3+5+7+...+81

    Sm=0

    For N=3 to 81 Step 3

    Sm=Sm+n

    Next

  • 7/16/2019 16742271 Visual Basic Net

    20/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    120

    Do while i 90

    Print La suma es & suma

    WHILE..WEND(Hacer Cuando)

    Sintaxis:

    While condicion

    (Programacion)

    wend

    Dim i as integer,suma as integer

    Suma=0 : i=10

    while i

  • 7/16/2019 16742271 Visual Basic Net

    21/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    121

    FOR EACH

    Repite un grupo de instrucciones para cada elemento de una matriz ocoleccin.

    Sintaxis:

    FOR EACH elemento IN grupo

    (Instrucciones)

    NEXT

    Ejemplo: Poner a las cajas de texto color de fondo rojo

    Private Sub CmdCambiar_Click()

    'Se declara una varibale de tipo Object

    Dim obj As Object

    'Por cada objeto que se encuentre en el formulario actual

    'Este for dara vueltas segun la cantidad de objetos que hay en le formulario

    For Each obj In Me.Controls

    'Pregunta si el objeto es un Textbox si lo es cambia de color de fondo

    If TypeOf obj Is TextBox Then

    obj.BackColor = vbRedEnd If

    Next

    End Sub

    Sentencia EXIT

    La sentencia EXIT permitira salir de unbucle,funcion,procedimiento,etc.Dependiendo de donde se quiere salir seaplicar la sentencia:

    Exit For .- Sale de un for

    Exit Do.- Sale de un Do

    Exit Sub.- Sale de un procedimiento

  • 7/16/2019 16742271 Visual Basic Net

    22/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    122

    Exit Function.- Sale de una funcion , etc.

  • 7/16/2019 16742271 Visual Basic Net

    23/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    123

    Semana 2 : Uso de Controles Comunes

    El control Label._

    En un control que permite visualizar un ttulo o texto, tambin permite

    Visualizar un resultado.

    Este es uno de los controles ms utilizado, porque es utilizado paraVisualizar un ttulo a un control; puede mostrar el resultado de unaOperacin, etc.

    Las propiedades de este control:

    Si te habrs dado cuenta a la hora de utilizar la propiedad de TextAlign delcontrol label, este te muestra una imagen en donde hay nuevo opcionesde alienar el texto a comparacin de la versin anterior que solo temostraba tres opciones.

    Ejemplo 01

    Esta aplicacin es fcil de hacer, el formulario que vas a crear deber tener elsiguiente diseo.

  • 7/16/2019 16742271 Visual Basic Net

    24/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    124

    El control Textbox._

    Es el segundo botn control ms utilizado en todas aplicaciones y formularios,porque permite:

    Ingresar datos por teclado, visualizar datos o resultados.

    Las propiedades de este control:

  • 7/16/2019 16742271 Visual Basic Net

    25/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    125

    Ejemplo 02

    Esta aplicacin es fcil de hacer, el formulario que vas a crear deber calcularel promedio de dos notas ingresadas, el formulario se llamar frmpromedios.

    diseo de cdigo le daremos doble clic en el formulario. Seleccionar el

    objeto TXTN1 y su evento KEYPRESS:

    Private Sub Txtn1_KeyPress(ByVal sender As Object, ByVal e AsKeyPressEventArgs) Handles Txtn1.KeyPress

    Donde escribiremos el siguiente cdigo:

    If Asc(e.KeyChar) = 13 Then

    txtn2.Focus()

    End If

    End Sub

    -

    Private Sub txtn2_KeyPress(ByVal sender As Object, ByVal e As

  • 7/16/2019 16742271 Visual Basic Net

    26/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    126

    KeyPressEventArgs)

    Handles txtn2.KeyPress

    If Asc(e.KeyChar) = 13 Then

    txtpromedio.Text =(Val(Txtn1.Text) + Val(txtn2.Text)) / 2

    End If

    End Sub

    Una de las caractersticas del Textbox es que permite controlar el ingreso delos datos por el Teclado, a travs del Evento KeyPress.

    Ejemplo 03

    Esta aplicacin es fcil de hacer, el formulario que vas a crear deber visualizarel nmero invertido del nmero ingresado, Formulario se llamar frminvertir.

  • 7/16/2019 16742271 Visual Basic Net

    27/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    127

    El control Button._

    Es el control ms por los programadores y utilizado en todas aplicaciones yformularios, porque

    Permite:

    Ejecutar un conjunto de instrucciones al hacer clic en el control.

    Las propiedades de este control:

  • 7/16/2019 16742271 Visual Basic Net

    28/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    128

    Ejemplo 04

    Reconociendo VB .NET y Trabajando con el Lenguaje

    Duracin: 20 minutos

    Cargue Visual Studio .NET, aparecer la pgina de inicio, en ella elegir laopcin Get Started y luego elegirCreate New Project, observe los diferentes

    tipos de proyectos y sus respectivas plantillas.

    Elegir un tipo de proyecto Visual Basic y una plantilla de AplicacinWindows, seleccionar como ubicacin la carpeta C:\VBNET\Labs y comonombre ingrese Lab03_1.

    Observe el IDE de Visual Studio .NET cuando se trata de una aplicacin paraWindows. Qu ventanas son nuevas en esta versin?. Luego, pruebe lacaracterstica de Auto Ocultar de las ventanas y la ayuda dinmica.

    Vamos a empezar a crear una aplicacin en la que en un formulario seingresen los datos de unos alumnos, tal como su nombre, notas de susexmenes parcial y final y se calcular el promedio y condicin. Adems, enotro formulario se mostrar un informe del total de alumnos ingresados,aprobados, desaprobados y el promedio total

    Primero en la ventana del Solution Explorer seleccionar el nombre delformulario y en la ventana de propiedades escribir en la propiedad FileNameel nombre frmDatos.vb.

    Realizar el diseo del formulario similar al de la figura 1.18, ingresando comoprefijo de la propiedad Name de las etiquetas las iniciales lbl, para los textos

    txt y para los botones btn, seguido del nombre que generalmente es similaral contenido de la propiedad Text.

    Despus de realizar el diseo y configurar las respectivas propiedades de losobjetos, visualice el cdigo del formulario. Observe las nuevas caractersticasdel Lenguaje y notes la diferencias entre esta versin y la anterior.

    Diseo del formulario frmDatos

  • 7/16/2019 16742271 Visual Basic Net

    29/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    129

    Para realizar los clculos de la aplicacin vamos a crear variables y funcionespblicas en un mdulo estndar, para lo cual del men Project elegimos laopcin Add Module y luego escribimos en el nombre Modulo.vb

    Escribir el siguiente cdigo en el mdulo:

    Module Modulo

    Public NTotal, NAprobados,NDesaprobados As Byte

    Public Suma, PromTot As Single

    Public FunctionCalcular_Promedio(ByVal Par As Byte, _

    ByVal Fin As Byte) As Single

    Return ((Convert.ToSingle(Par + 2 * Fin)) / 3)

    End Function

    Public Function Calcular_Condicion(ByVal Pro As Single) _

    As String

    NTotal = +1 : Suma = +Pro

    If Pro > 10.5 ThenNAprobados = +1 : Return ("Aprobado")

    Else

    NDesaprobados = +1 : Return ("Desaprobado")

    End If

    End Function

    End Module

    Regresar al formulario y proceder a escribir cdigo en los eventos de losbotones, tal como se muestra a continuacin:

    Protected Sub btnCalcular_Click()

    Dim Par, Fin As Byte : Dim Pro As Single : Par =

  • 7/16/2019 16742271 Visual Basic Net

    30/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    130

    Convert.ToByte(txtParcial.Text)

    Fin = Convert.ToByte(txtFinal.Text) : Pro = Calcular_Promedio(Par, Fin)

    txtPromedio.Text = Format(Pro, "#.00") : txtCondicion.Text =Calcular_Condicion(Pro)

    End Sub

    Protected Sub btnNuevo_Click(ByVal sender As Object, )

    Dim X As Control

    For Each X In Me.Controls

    If TypeOf X Is TextBox Then X.Text = ""

    Next : txtNombre.Focus()

    End Sub

    Protected Sub btnInforme_Click(ByVal sender As Object, )

    Dim X As New frmInforme() : X.ShowDialog()

    End Sub

    Protected Sub btnSalir_Click(ByVal sender As Object, )

    Me.Close

    End Sub

    Para mostrar el informe de situacin de alumnos ir al men Project y elegir laopcin Add Windows Form y en el nombre escribirfrmInforme.vb. Luegorealizar el diseo del formulario, tal como semuestra en la figura de abajo.

    Diseo del formulario frmInforme

    Ingresar al cdigo del formulariofrmInforme y proceder a escribir cdigo en

    el evento Load para que se muestre lasestadsticas de los alumnos:

    Public Sub frmInforme_Load( )

    txtTotal.Text = NTotal.ToString :txtAprobados.Text = NAprobados.ToString

  • 7/16/2019 16742271 Visual Basic Net

    31/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    131

    txtDesaprobados.Text = NDesaprobados.ToString

    txtPromedioTotal.Text = Format((Suma / NTotal), "#.00")

    End Sub

    Luego programar en los botones de Aceptar y Cancelar el regreso y lafinalizacin de la aplicacin respectivamente, similar al cdigo mostrado abajo:

    Protected Sub btnAceptar_Click(ByVal sender As Object, )

    Me.Close()

    End Sub

    Protected Sub btnCancelar_Click(ByVal sender As Object, )

    End

    End Sub

    Grabar y ejecutar la aplicacin; para probar ingresar como mnimo los datos dedos alumnos, mostrar el informe y finalizar.

    Dirjase al Explorador de Windows y analice el contenido de la carpetaLab01_1, observe que existen varios tipos de extensiones, sln para lasolucin, vbproj para la aplicacin y vb para los formularios y el mdulo.

    Finalmente, ingrese a la carpeta bin de Lab01_1 y observe dos archivos:uno ejecutable (extensin exe) y otro archivo intermedio (extensin pdb),

    Cul de estos es conocido como Assemblie?.

    Ejemplo 05

    Implementando Multi Thread y Control de Excepciones

    Duracin: 15 minutos

    Ingrese a Visual Studio .NET y del men File elegirNew y luego Project osimplemente pulsar [Ctrl] + [N], luego elegir un tipo de proyecto Visual Basic yuna plantilla de Aplicacin Windows, seleccionar como ubicacin la carpetaC:\VBNET\Labs y como nombre ingresarLab03_2.

    Se va a crear una aplicacin en la que se implemente mltiples threads parainiciar la lectura de un archivo de texto extenso y poder cancelar este procesosi es necesario, adems para evitar los errores en tiempo de ejecucinharemos uso del control estructurado de excepciones visto en este mdulo.

    Primero en la ventana del Solution Explorer seleccionar el nombre del

  • 7/16/2019 16742271 Visual Basic Net

    32/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    132

    formulario y en la ventana de propiedades escribir en la propiedad FileNameel nombre frmArchivo.vb.

    Realizar el diseo del formulario similar al presentado aqu abajo:

    Diseo del formulario frmArchivo

    Declarar una variable llamada Hilo de tipothread y definir una subrutina que lea elarchivo de texto cuya ruta y nombre estespecificado en el cuadro de texto, estarutina usa Try..Catch..Finally paracontrolar errores en tiempo de ejecucin.

    Dim Hilo As System.Threading.Thread

    Sub LeerArchivo()

    Dim Flujo AsSystem.IO.StreamReader : Dim Linea As

    String = " "

    Try

    Flujo = System.IO.File.OpenText(txtNombre.Text)

    Do Until IsNothing(Linea)

    Linea = Flujo.ReadLine

    txtArchivo.Text = txtArchivo.Text + Linea + Chr(13) + Chr(10)

    Loop

    Catch X As IO.IOException

    MsgBox(X.Message, MsgBoxStyle.Information, "No se pudo")

    txtNombre.Clear() : Exit Sub

    End TryFlujo.Close() : btnSuspender.Enabled = False : btnContinuar.Enabled =

    False

    btnCancelar.Enabled = False

    End Sub

  • 7/16/2019 16742271 Visual Basic Net

    33/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    133

    Escribir cdigo en el evento TextChanged de txtNombre y en los eventosClick de los Botones.

    Private Sub txtNombre_TextChanged(ByVal sender As ) Handles

    btnLeer.Enabled = : txtNombre.Text ""

    End Sub

    Private Sub btnLeer_Click(ByVal sender As ) Handles

    Hilo = New System.Threading.Thread(AddressOf LeerArchivo) :Hilo.Start()

    btnSuspender.Enabled = True : btnCancelar.Enabled = True

    End Sub

    Private Sub btnCancelar_Click(ByVal sender As ) Handles Hilo.Abort() : btnLeer.Enabled = False : btnSuspender.Enabled = False

    btnCancelar.Enabled = False

    End Sub

    Private Sub btnNuevo_Click(ByVal sender As ) Handles

    txtNombre.Clear() : txtArchivo.Clear() : txtNombre.Focus()

    End Sub

    Private Sub btnSuspender_Click(ByVal sender As ) Handles

    Hilo.Suspend() : btnLeer.Enabled = False : btnContinuar.Enabled= True

    btnCancelar.Enabled = False

    End Sub

    Private Sub btnContinuar_Click(ByVal sender As ) Handles

    Hilo.Resume()

    End Sub

    Private Sub btnSalir_Click(ByVal sender As ) Handles ...

    Me.Close()

  • 7/16/2019 16742271 Visual Basic Net

    34/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    134

    End Sub

    Finalmente, grabar y ejecutar la aplicacin.

    Ejemplo 05

    Ejercicio Modelo Para Desarrollar en Laboratorio.1. Crear una Carpeta con el nombre: Visualnet, en la unidad C: o Unidad

    D:2. Activar el .Net, seleccionar el botn:3. Se visualiza la siguiente pantalla:

    4. Activar el Explorador de soluciones:

    O tambin pulsando las teclas: Ctrl + Alt + L5. Se visualiza lo siguiente:

    6. Cerrar la ventana del Explorador de soluciones y activar la ventana depropiedades (F4)

    7. Aplicar las propiedades del formulario:Name frmdemo01

    Text Primera Practica Net

    Opacity 90%

    StartPosition CenterScreen

    FormBorderStyle Fixed3D

    Renombrar Form1.vb por Demo01.vb

  • 7/16/2019 16742271 Visual Basic Net

    35/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    135

    BackgroundImage 1 imagen de Archivo

    Cursor Hand

    Icon Seleccionar un archivo icono

    8. Del Cuadro de Herramientas, insertar al formulario lo siguiente:

    El formulario tendr el siguiente diseo:

    9. Propiedades del GroupBox1 (Ventana de Propiedades)

    Name gbxcuadros

    Text Operaciones Con Cuadros

    Font Bold True

    Forecolor 1 Color

    BackgroundImage La misma imagen del Formulario

    Cursor PanNorth

    10. El formulario tendr el siguiente aspecto:

    Componente:

    Grou Box

    Ob eto: Grou Box

  • 7/16/2019 16742271 Visual Basic Net

    36/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    136

    11. Del cuadro de Herramientas:

    12. El formulario tendr el siguiente aspecto:

    13. Propiedades del Objeto Label

    Name Label1

    Text Ingrese El Primer Numero :

    BorderStyle Fixed3D

    Image Insertar un icono de imagen

    ImageAlign MiddleRight

    TextAlign MiddleLeft

    Font Bold True

    Forecolor Un color

    Autosize False

    BackColor 1 Color

    14. El formulario tendr el siguiente aspecto:

    Insertar el Objeto Label dentrodel GroupBox

    Objeto Label Insertadodentro del GroupBox

  • 7/16/2019 16742271 Visual Basic Net

    37/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    137

    15. Copiar y Pegar (4 Label) Total de Labels (5 Labels)

    16. Modificar los Text de los labels, tal como se visualiza en la siguienteimagen:

    17. Del cuadro de herramientas:

    18. El formulario tendr el siguiente aspecto:

    19. Propiedades del Textbox1Name txtuno

    Text Vacio

    Forecolor y Backcolor 1 Color

    Font Bold True

    20. Copiar y pegar los cuadros de Textos, el formulario tendr el siguienteaspecto:

    Insertar el cuadro detexto: Textbox, dentro

    Cuadro de Texto: Textbox1, insertado en el objetoGroupBox

  • 7/16/2019 16742271 Visual Basic Net

    38/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    138

    21. Insertar un segundo GroupBox hacia el formulario, tal como se muestraen la siguiente imagen:

    22. El formulario tendr el siguiente aspecto:

    23. Del Cuadro de Herramientas:

    24. El formulario tendr el siguiente aspecto:

    Name gbxopciones

    Text Opciones de Control

    Font Bold True

    Forecolor 1 Color

    BackgroundIma

    ge

    La misma imagen del

    Formulario

    Cursor PanWest

    Insertar un botn de comando, Button

    hacia el GroupBox

    Name: txtdos

    Name: txttres

    Name: txtcuatro

    Name: txtcinco

  • 7/16/2019 16742271 Visual Basic Net

    39/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    139

    25. Propiedades del botn de Comando:

    Name btnnuevo

    Text &Nuevo

    BackgroundImage La misma imagen del Formulario

    Image Un icono

    ImageAlign BottomCenter

    TextAlign MiddleCenter

    Forecolor 1 Color

    Cursor Hand

    26. Copiary pegar 4 botones de comando con el objeto Button, hacia elobjeto GroupBox

    27. En el formulario:

    Botn de Comando Button1

    Name: Name: btnmultiplica Name: btnsalir Name: btnprome

  • 7/16/2019 16742271 Visual Basic Net

    40/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    140

    28. El formulario tendr el siguiente aspecto:

    29. Pulsar doble clic en el objeto TextBox: txtuno, evento: Keypress

    30. Seleccionar el objeto: txtdos, evento: Keypress

    Copiar y pegar el ObjetoLabel y el TextBox

    Name: Label6 Text: El Resultado Es :

    TextAlign: MiddleCenter

    Name: txtresultado Text: Vacio

  • 7/16/2019 16742271 Visual Basic Net

    41/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    141

    31. Seleccionar el objeto: txttres, evento: keypress

    32. Seleccionar el objeto: txtcuatro, evento: Keypress

    33. Seleccionar el objeto: txtcinco, evento: Keypress

    34. Seleccionar el Objeto: btnnuevo, evento: Click

  • 7/16/2019 16742271 Visual Basic Net

    42/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    142

    35. Seleccionar el objeto: btnsuma, evento: Click

    36. Seleccionar el objeto: btnmultiplica, evento: Click

    37. Seleccionar el objeto: btnprome, evento: Click

    38. Seleccionar el objeto: btnsalir, evento: Click

    Esta aplicacin nos permitir hallar la venta de un productocualquiera,Calculando el Subtotal, IGV y Total de la venta, y a su vez nosmostrara la hora actualizndose cada segundo, mediante un controlTimer.

    Grabar y Ejecutar La Aplicacin

  • 7/16/2019 16742271 Visual Basic Net

    43/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    143

    Primero comencemos con los nombres de cada control, aunque creoqueesto es lo que ms me toma tiempo, empecemos, el Label que nosmostrara la fecha se llamara lblFecha, el que nos mostrara se llamara

    lblHora, el del subtotal

    se llamara lblSubTotal,el del total se llamaralblTotal y el del IGV sellamara lblIgv, elTextBox que captura elnombre del producto sellamara txtNombProd,el del precio unitario sellamara txtPrecUnit yel de la cantidad se

    llamara txtCant, losbotones de Nuevo,Resultados y Salir se

    llamaran btnNuevo, btnResultados y btnSalir, respectivamente.

    frmAplicacion89 (Evento FormClosing)Dim Resp As MsgBoxResultResp = MsgBox("Desea salir de la Aplicacin?",

    sgBoxStyle.YesNo,"Cuidado")

    If Resp = MsgBoxResult.No Thene.Cancel = TrueEnd If

    frmAplicacion89 (Evento Load)

    Me.tmrHora.Enabled = TrueMe.lblFecha.Text = Format(Now, "dd - MMMM - yyyy")Me.lblHora.Text = Format(Now, "hh:mm:ss tt")Me.Text = Space(40) + "Ventas"

    tmrHora (Evento Tick)

    Me.lblHora.Text = Format(Now, "hh:mm:ss tt")

    btnSalir (Evento Click)Me.Close()

  • 7/16/2019 16742271 Visual Basic Net

    44/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    144

    btnNuevo (Evento Click)

    Me.txtCant.Text = ""Me.txtNombProd.Text = ""Me.txtPrecUnit.Text = ""

    Me.lblIgv.Text = ""Me.lblSubTotal.Text = ""Me.lblTotal.Text = ""Me.txtNombProd.Focus()

    btnResultados (Evento Click)Dim SubTotal, IGV, Total As SingleSubTotal = CStr(Val(Me.txtCant.Text) *

    Val(Me.txtPrecUnit.Text))IGV = SubTotal * 0.19

    Total = IGV + SubTotalMe.lblSubTotal.Text = Format(SubTotal, "###,##0.00")Me.lblIgv.Text = Format(IGV, "###,##0.00")Me.lblTotal.Text = Format(Total, "###,##0.00")

    Lo nico que deben de saber del control Timer es que cuando unolo crea, se crea desactivado, as que se tiene que activar el controlpara poder usarlo, esto se hace mediante la propiedad Enabled, enla cual tiene que estar en True, y el intervalo en que el controlse actualizara, por ejemplo, el intervalo de 100 es equivalente a

    un segundo.Ejemplo propuesto

    1. Realizar el siguiente diseo del Formulario

  • 7/16/2019 16742271 Visual Basic Net

    45/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    145

    Indicaciones:

    Cuando se ejecuta la aplicacin deber realizar lo siguiente:

    Respecto a los botones

    El botn Nuevo, nos permite limpiar los cuadros de textos El botn Calcularnos permite realizar las siguientes operaciones:

    Sub Total, Igv y A pagar El botn: Salir, nos permite salir de la aplicacin

    Respecto a los GroupBox

    Cuando se selecciona el botn: Nuevo, se activa los Groupbox:Datos del cliente y Compras del cliente, para ingresar los datos

    Se digita los datos de un cliente Se ingresa un cdigo de un producto La descripcin de un producto El precio Cuando se digita la cantidad, debe que visualizarse automticamente

    en la columna total, el producto del precio por la cantidad Cuando se hay llenado las compras del Cliente Se pulsa el botn: Calcular, para que halle los resultados

    mencionados anteriormenteValidaciones

    En la columna precio y cantidad, solamente acepta valoresnumricos

    En los Cuadros de textos, se debe que utilizar el evento Keypress

    Ejercicios propuestos

    Ingresar tres nmeros y determinar cul de ellos es el menor.

    Llamar de un formulario a otro usando botones.

    Ingresar dos nmeros realizar la suma de estos, enviar a otro formularioy acumularlos en un label.

    Ingresar un valor inicial y final con la estructura repetitiva for .. to realizarla secuencia para determinar cuntos pares e impares existen as comosu acumulado de cada uno, debe mostrar en un control textbox demltiples lneas las respuestas de la serie respectiva.

  • 7/16/2019 16742271 Visual Basic Net

    46/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    146

    Mostrar en el formulario la tabla de dividir de un numero ingresado dichatabla solo se mostrar si este nmero est comprendido entre 1 y 12.

    En un formulario y en 25 botones determinar al azar sin que se repitan laemulacin de un bingo.

    Semana 3 : Contenedores de elementos

    El control combo box._

    Un combo tiene muchas cosas en comn con una lista (listbox). La diferenciaprincipal es que en un combo tiene una propiedad llamada DropDowStyledistintas formas de presentar una lista:

    1. Simple Combo. En este caso el registro seleccionado tambin es editable, yse muestra una lista no desplegable dotada si es necesario de una scrollbar.

    2.- DropDown ._ es el valor ms habitual y corresponde a el caso en el que

    slo se muestra el registro seleccionado, que es editable por el usuario,permaneciendo el resto oculto hasta que el usuario despliega la lista con elmouse.

    3. DropDown List. En este ltimo caso el registro seleccionado no es

    editable y la lista es desplegable.

    En una caja combinada, al igual que en una caja de texto sencilla, est

    permitido escribir con el teclado en tiempo de ejecucin, si la propiedad

    Enabled vale True. En una lista esto no es posible.

    El control list box._

    Un ListBox es un control en el que se pueden mostrar varios registros o lneas,teniendo uno o varios de ellos seleccionado(s). Si en la lista hay ms registrosde los que se pueden mostrar al mismo tiempo, se aade automticamente un

  • 7/16/2019 16742271 Visual Basic Net

    47/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    147

    scrollBar. Para aadir o eliminar registros de la lista se utilizan la Coleccintems cuyos mtodos son Add y Remove respectivamente. Esto slo puedehacerse en modo de ejecucin, y no

    en modo de diseo. Se suelen inicializar desde el evento MyBase.Load.

    Propiedades

    - tems. Es una coleccin de elementos que se almacena en el List-

    Box. En dicha coleccin se utilizan los siguientes mtodos:

    - Add.- Aadir un Item.

    Clear. Limpiar los tems de la Lista.

    - Remove. Quitar un Item de la Lista.

    - Count. Retorna el nmero de tems en la Lista.

    - SelectedIndex. Retorna el ndice del elemento seleccionado. Hay que tener

    en cuenta que los elementos de la lista se empiezan a numerar por cero, y enel caso de no haber ninguno seleccionado esta propiedad vale -1.

    - SelectedItem. Retorna el valor del elemento seleccionado, tambin

    se utiliza la propiedad Text.

    - SetSelected (pos,valor). Indica si una lista esta seleccionada, esta

    si esta en true indica que ese elemento ha sido seleccionado.

    - SelectionMode esta es una propiedad que indica si se podra seleccionar

    una propiedad neta del ListBox y se dara en tiempo de diseo.

    Ejemplo 06

    Este Formulario nos permite ingresar un nombre de un trabajador y alseleccionar el tipo de pago deltrabajador, automticamentenos hallara el pago por hora, y

    tendremos que ingresar lashoras trabajadas.

    Esta aplicacin nos permiteingresar un numero enterocualquiera a un ListBox, ydespus podemos ordenarlos

  • 7/16/2019 16742271 Visual Basic Net

    48/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    148

    ascendentemente o descendentemente, o eliminar los elementosseleccionados, tambin podremos hallar la media de los elementos delcontrol, teniendo en cuenta que si el nmero de elementos de la lista es impar,la media es igual al nmero colocado en la posicion media de la lista, o si elnmero de elementos de la lista es par, la media es igual al promedio de los

    dos valores medios de la lista. NOTA que se debe de tener ordenados loselementos de la lista en forma ascendente para poder hallar la media.

    Los controles tendrn su nombre respectivo, con referencia a su funcin, eltectbox se llama txtNumIng, el botn aadir se llamara btnAadir, el botncerrar se llamara btnCerrar, el botn ordenar se llamara btnOrdenar, el botneliminar se llamara btnEliminar, el botn ejecutar clculo se llamara btnEjecutar,la lista de nmeros (ListBox) se llamar lstNumeros, el radio button ascendentese llamar rdbAscendente y el del descendente se llamara rdbDescendente y

    por ltimo el Label que muestra la media de la lista de nmeros se llamaralblCalculo.

    Cuando seleccionaremos un elemento o ms de uno, se activara el botn de

    Eliminar, en caso contrario debe de estar desactivado.

    Declaramos variables a Nivel del Formulario

    Dim Ordenado As Boolean = False

    txtNumIng (Evento TextChanged)

    If IsNumeric(Me.txtNumIng.Text) = True Then

    Me.btnAadir.Enabled = True

    Else

    Me.btnAadir.Enabled = False

    End If

    btnAadior (Evento Click)

    Me.lstNumeros.Items.Add(Me.txtNumIng.Text)

    Me.txtNumIng.Text = ""

    Me.txtNumIng.Focus()

    rdbAscendente (Evento CheckedChanged)

  • 7/16/2019 16742271 Visual Basic Net

    49/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    149

    If Me.rdbAscendente.Checked = True Then

    Me.btnOrdenar.Enabled = True

    Else

    Me.btnOrdenar.Enabled = False

    End If

    rdbDescendente (Evento CheckedChanged)

    If Me.rdbDescendente.Checked = True Then

    Me.btnOrdenar.Enabled = True

    Else

    Me.btnOrdenar.Enabled = False

    End If

    btnOrdenar (Evento Click)

    Dim NumItems, J, K, Mayor As Integer

    NumItems = Me.lstNumeros.Items.Count - 1

    Dim Temp(NumItems) As Integer

    'Almacenamos los valores en un array temporal

    For J = 0 To NumItems

    Temp(J) = CInt(Me.lstNumeros.Items(J))

    Next

    'Mtodo de Ordenacin llamada BURBUJA

    For J = 0 To NumItems

    For K = 0 To NumItems

    If K < NumItems Then

    If Temp(K) > Temp(K + 1) Then

    Mayor = Temp(K) : Temp(K) = Temp(K + 1) : Temp(K + 1) =Mayor

  • 7/16/2019 16742271 Visual Basic Net

    50/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    150

    End If

    End If

    Next

    Next

    If Me.rdbAscendente.Checked = True Then

    'Limpiar y Llenar el ListBox

    Me.lstNumeros.Items.Clear()

    For J = 0 To NumItems

    Me.lstNumeros.Items.Add(CStr(Temp(J)))

    Next

    Ordenado = True

    ElseIf Me.rdbDescendente.Checked = True Then

    'Limpiar y Llenar el ListBox

    Me.lstNumeros.Items.Clear()

    For J = 0 To NumItems

    Me.lstNumeros.Items.Add(CStr(Temp(NumItems - J)))

    Next

    Ordenado = False

    End If

    lstNumeros (Evento SelectedIndexChanged)

    Me.btnEliminar.Enabled = True

    btnEliminar (Evento Click)

    Dim i As Integer : Me.btnEliminar.Enabled = False

    With Me.lstNumeros

    For i = .SelectedItems.Count - 1 To 0 Step -1

    .Items.Remove(.SelectedItems.Item(i))

  • 7/16/2019 16742271 Visual Basic Net

    51/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    151

    Next

    End With

    btnEjecutar (Evento Click)

    Dim NumItems, Index, Q As Integer : Dim Media As SingleNumItems = Me.lstNumeros.Items.Count

    If Ordenado = False Then

    MsgBox("Para Hallar la Media, Primero Debe de Ordenar los Elementosen

    Forma Ascendente", MsgBoxStyle.Information, "ERROR!")

    Exit Sub

    End If

    Q = NumItems \ 2 : Index = NumItems - (Q * 2)

    If Index = 0 Then

    Index = CInt(Me.lstNumeros.Items.Count) \ 2

    Media = (CSng(CInt(Me.lstNumeros.Items(Index)) +

    CInt(Me.lstNumeros.Items(Index - 1)))) / 2

    ElseIndex = CInt(Me.lstNumeros.Items.Count) \ 2

    Media = CSng(CInt(Me.lstNumeros.Items(Index)))

    End If

    Me.lblCalculo.Text = CStr(Media)

    btnOrdenar (Evento Click)

    Me.Close()

  • 7/16/2019 16742271 Visual Basic Net

    52/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    152

    Empleo de listas

    Codificacion

    Public Class Form1

    Private Const msgbox_Title As String = "Lista de Elementos"

    Private Const msgbox_Eliminar As String = "Para eliminar un dato, debeseleccionarlo previamente"

    Private Const msgbox_Pasar_Dato As String = "Para pasar un dato, debeseleccionarlo previamente"

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

    With ListBox1

    .Items.Add("Naranja") : .Items.Add("Pera")

    .Items.Add("Melocotn") : .Items.Add("Albaricoque")

    .Items.Add("Manzana") : .Items.Add("Pltano")

    .Items.Add("Meln") : .Items.Add("Mango")

    .Items.Add("Uvas") : .Items.Add("Sanda") : .Items.Add("Limn")

    .Items.Add("Fresquilla")

    End With

    Label1.Text = ListBox1.Items.Count & " elemento(s)"

    End Sub

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

  • 7/16/2019 16742271 Visual Basic Net

    53/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    153

    'Aadir ListBox1

    If TextBox1.Text "" Then

    ListBox1.Items.Add(TextBox1.Text)

    Label1.Text = ListBox1.Items.Count & " elemento(s)"

    TextBox1.Text = ""

    End If

    End Sub

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

    'Eliminar ListBox1

    If ListBox1.SelectedIndex -1 Then

    'Si hay datos seleccionados en el control, eliminamos el datoseleccionado

    ListBox1.Items.RemoveAt(ListBox1.SelectedIndex)

    Label1.Text = ListBox1.Items.Count & " elemento(s)"

    Else

    MessageBox.Show(msgbox_Eliminar, msgbox_Title,

    MessageBoxButtons.OK, MessageBoxIcon.Information)

    End If

    End Sub

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

    'Pasa todos los elementos del control ListBox1 al control ListBox2

    While ListBox1.Items.Count > 0

    ListBox1.SelectedIndex = ListBox1.Items.Count - 1

    ListBox2.Items.Add(ListBox1.SelectedItem)

    ListBox1.Items.RemoveAt(ListBox1.SelectedIndex)

    End While

  • 7/16/2019 16742271 Visual Basic Net

    54/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    154

    Label1.Text = ListBox1.Items.Count & " elemento(s)"

    Label2.Text = ListBox2.Items.Count & " elemento(s)"

    End Sub

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

    ListBox2.Sorted = True : ListBox2.Sorted = False

    End Sub

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

    'Pasa todos los elementos del control ListBox2 al control ListBox1

    While ListBox2.Items.Count > 0ListBox2.SelectedIndex = ListBox2.Items.Count - 1

    ListBox1.Items.Add(ListBox2.SelectedItem)

    ListBox2.Items.RemoveAt(ListBox2.SelectedIndex)

    End While

    Label1.Text = ListBox1.Items.Count & " elemento(s)"

    Label2.Text = ListBox2.Items.Count & " elemento(s)"

    End Sub

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

    Dim a As Integer = 0

    'Pasa un dato seleccionado del control ListBox1 al control ListBox2

    If ListBox1.SelectedIndex -1 Then

    ' 'Si hay datos seleccionados en el control,'pasamos el datoseleccionado

    While a < ListBox1.Items.Count

    ' si el elemento esta seleccionado

    If ListBox1.GetSelected(a) = True Then

  • 7/16/2019 16742271 Visual Basic Net

    55/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    155

    ListBox2.Items.Add(ListBox1.Items.Item(a))

    ListBox1.SetSelected(a, False) :ListBox1.Items.RemoveAt(a)

    'elimina de la lista el item copiado

    End If

    a += 1

    End While

    Label1.Text = ListBox1.Items.Count & " elemento(s)"

    Label2.Text = ListBox2.Items.Count & " elemento(s)"

    Else

    If ListBox1.Items.Count > 0 Then

    MessageBox.Show(msgbox_Pasar_Dato, msgbox_Title,MessageBoxButtons.OK, MessageBoxIcon.Information)

    End If

    End If

    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As

    System.EventArgs) Handles Button3.Click

    'Pasa un dato seleccionado del control ListBox2 al control ListBox1

    If ListBox2.SelectedIndex -1 Then

    'Si hay datos seleccionados en el control,

    'pasamos el dato seleccionado

    ListBox1.Items.Add(ListBox2.SelectedItem)

    ListBox2.Items.RemoveAt(ListBox2.SelectedIndex)Label1.Text = ListBox1.Items.Count & " elemento(s)"

    Label2.Text = ListBox2.Items.Count & " elemento(s)"

    Else

  • 7/16/2019 16742271 Visual Basic Net

    56/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    156

    If ListBox2.Items.Count > 0 Then

    MessageBox.Show(msgbox_Pasar_Dato, msgbox_Title,MessageBoxButtons.OK, MessageBoxIcon.Information)

    End If

    End If

    End Sub

    End Class

    Ejemplo 07

    : Elegir un nuevo proyecto Visual Basic y una plantilla de AplicacinWindows, seleccionar en ubicacin la carpeta C:\VBNET\Labs y comonombre escribirLab04_1.

    : Vamos a crear una aplicacin de tipo Proforma, que calcule el precio apagar por un Computador eligiendo las partes bsicas y opcionalmente susaccesorios; para esto, el nombre del formulario ser frmProforma.vb.

    : Realizar el diseo del formulario aadiendo un TabControl con 3TabPages y disear las fichas, tal como se muestran en la figuras deabajo:

  • 7/16/2019 16742271 Visual Basic Net

    57/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    157

    Diseo de la primera ficha de frmProforma Diseo de la segunda ficha defrmProforma

    Nota: Los GroupBox de lectoras y los ListBox estn deshabilitados.

    : Luego de realizar el diseo y configurar las propiedades de los controles; loprimero que haremos es escribir una rutina que permita llenar el combo y

  • 7/16/2019 16742271 Visual Basic Net

    58/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    158

    las listas, de la siguiente forma:

    Public Sub Llenar_Listas()

    With cboProcesador.Items

    .Add("Pentium II 350 Mhz") : .Add("Pentium III 400 Mhz")

    .Add("Pentium III 500 Mhz") : .Add("Pentium III 700 Mhz")

    End With

    With lstMemoria.Items

    .Add("32 Mb") : .Add("64 Mb")

    .Add("128 Mb")

    End With

    With lstDisco.Items

    .Add("10 Gb") : .Add("20 Gb")

    .Add("30 Gb")

    End With

    With lstImpresora.Items

    .Add("Stylus Color 400") : .Add("Stylus Color 500")

    .Add("Stylus Color 700")

    End With

    With lstScanner.Items

    .Add("Pequeo") : .Add("Mediano") : .Add("Grande")

    End With

    End Sub

    : A continuacin, se debe llamar a la rutina despus que se crea elformulario:

    Public Sub frmProforma_Load()

  • 7/16/2019 16742271 Visual Basic Net

    59/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    159

    Llenar_Listas()

    End Sub

    : Se debe programar el combo y las listas de la primera ficha ConfiguracinBsica para que al elegir un tipo de procesador, memoria o disco duro, se

    muestre el precio respectivo:

    Public Sub cboProcesador_SelectedIndexChanged(ByVal sender As )

    Select Case cboProcesador.SelectedIndex

    Case 0 : txtPrecioProcesador.Text = "100"

    Case 1 : txtPrecioProcesador.Text = "150"

    Case 2 : txtPrecioProcesador.Text = "200"

    Case 3 : txtPrecioProcesador.Text = "300"

    End Select

    End Sub

    Public Sub lstMemoria_SelectedIndexChanged(ByVal sender As )

    Select Case lstMemoria.SelectedIndex

    Case 0 : txtPrecioMemoria.Text = "30"

    Case 1 : txtPrecioMemoria.Text = "50"Case 2 : txtPrecioMemoria.Text = "70"

    End Select

    End Sub

    Public Sub lstDisco_SelectedIndexChanged(ByVal sender As )

    Select Case lstDisco.SelectedIndex

    Case 0 : txtPrecioDisco.Text = "80"

    Case 1 : txtPrecioDisco.Text = "100"

    Case 2 : txtPrecioDisco.Text = "120"

    End Select

  • 7/16/2019 16742271 Visual Basic Net

    60/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    160

    End Sub

    : Tambin se debe realizar lo mismo al elegir una opcin del grupo debotones, tanto del monitor como del teclado:

    Public Sub rbnMonitor14_Click(ByVal sender As Object, )

    txtPrecioMonitor.Text = "150"End Sub

    Public Sub rbnMonitor15_Click(ByVal sender As Object, )

    txtPrecioMonitor.Text = "200"

    End Sub

    Public Sub rbnTecladoSimple_Click(ByVal sender As Object, )

    txtPrecioTeclado.Text = "15"

    End Sub

    Public Sub rbnTecladoLujo_Click(ByVal sender As Object, )

    txtPrecioTeclado.Text = "30"

    End Sub

    : Programamos la segunda ficha de Accesorios, iniciando por la casilla delectora de disco, para que al elegir este accesorio se habilite sus opciones(ya que las deshabilitamos en diseo) y al elegir un modelo se muestre suprecio:

    Public Sub chkLectoraDisco_Click(ByVal sender As Object, )

    gbxLectoraDisco.Enabled = chkLectoraDisco.Checked

    End Sub

    Public Sub rbnLectoraDisco1_Click(ByVal sender As Object, )

    txtPrecioLectoraDisco.Text = "20"

    End Sub

    Public Sub rbnLectoraDisco2_Click(ByVal sender As Object, )

    txtPrecioLectoraDisco.Text = "40"

    End Sub

  • 7/16/2019 16742271 Visual Basic Net

    61/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    161

    Public Sub rbnLectoraDisco3_Click(ByVal sender As Object, )

    txtPrecioLectoraDisco.Text = "50"

    End Sub

    :

    De manera similar, lo hacemos con la lectora de CD ROM:Public Sub chkLectoraCD_Click(ByVal sender As Object, )

    gbxLectoraCD.Enabled = chkLectoraCD.Checked

    End Sub

    Public Sub rbnLectoraCD40X_Click(ByVal sender As Object, )

    txtPrecioLectoraCD.Text = "40"

    End Sub

    Public Sub rbnLectoraCD60X_Click(ByVal sender As Object, )

    txtPrecioLectoraCD.Text = "50"

    End Sub

    Public Sub rbnLectoraCD80X_Click(ByVal sender As Object, )

    txtPrecioLectoraCD.Text = "70"

    End Sub

    : Para la opcin de Impresoras y Scanner se realiza el mismo procedimiento:Public Sub chkImpresora_Click(ByVal sender As Object, )

    lstImpresora.Enabled = chkImpresora.Checked

    End Sub

    Public Sub lstImpresora_SelectedIndexChanged(ByVal sender As )

    lstImpresora.SelectedIndexChangedSelect Case lstImpresora.SelectedIndex

    Case 0 : txtPrecioImpresora.Text = "100"Case 1 : txtPrecioImpresora.Text = "200"

    Case 2 : txtPrecioImpresora.Text = "300"

    End Select

  • 7/16/2019 16742271 Visual Basic Net

    62/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    162

    End Sub

    Public Sub chkScanner_Click(ByVal sender As Object, )

    lstScanner.Enabled = chkScanner.Checked

    End SubPublic Sub lstScanner_SelectedIndexChanged(ByVal sender As )

    Select Case lstScanner.SelectedIndex

    Case 0 : txtPrecioScanner.Text = "100"

    Case 1 : txtPrecioScanner.Text = "200"

    Case 2 : txtPrecioScanner.Text = "400"

    End Select

    End Sub

    : Finalmente, programamos los botones de la tercera ficha General, quecalculen el precio a pagar, limpie los datos ingresados y finalice laaplicacin respectivamente:

    Public Sub btnCalcular_Click(ByVal sender As Object, )

    Dim PrePro, PreMem, PreDis, PreMon, PreTec As Integer

    Dim PreLDi, PreLCD, PreImp, PreSca As Integer

    Dim TotBas, TotAcc, TotVen, TotIGV, TotPag As Single

    PrePro = txtPrecioProcesador.Text.ToInt16

    PreMem = txtPrecioMemoria.Text.ToInt16

    PreDis = txtPrecioDisco.Text.ToInt16

    PreMon = txtPrecioMonitor.Text.ToInt16

    PreTec = txtPrecioTeclado.Text.ToInt16

    PreLDi = txtPrecioLectoraDisco.Text.ToInt16

    PreLCD = txtPrecioLectoraCD.Text.ToInt16

    PreImp = txtPrecioImpresora.Text.ToInt16

    PreSca = txtPrecioScanner.Text.ToInt16

  • 7/16/2019 16742271 Visual Basic Net

    63/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    163

    TotBas = PrePro + PreMem + PreDis + PreMon + PreTec

    TotAcc = PreLDi + PreLCD + PreImp + PreSca

    TotVen = TotBas + TotAcc

    TotIGV = (0.18 * TotVen).ToSingle

    TotPag = TotVen + TotIGV

    txtTotalBasico.Text = TotBas.ToString

    txtTotalAccesorios.Text = TotAcc.ToString

    txtTotalVenta.Text = TotVen.ToString

    txtTotalIGV.Text = TotIGV.ToString

    txtTotalPagar.Text = TotPag.ToString

    End Sub

    Public Sub btnNuevo_Click(ByVal sender As Object, )

    Dim X As Control

    For Each X In Controls

    If ((TypeOf X Is TextBox) Or (TypeOf X Is ComboBox)) Then

    X.Text = ""

    End If

    Next

    End Sub

    Public Sub btnSalir_Click(ByVal sender As Object, )

    End

    End Sub

    Ejercicio Propuesto

    Esta aplicacin nos permitir realizar una pro forma de venta de una tiendacomercial de computo, consta de dos formularios, uno que es el principalllamado frmAplicacion90 y otro llamado frmInfo, esta aplicacin est basada enarreglos y datos almacenados en el programa, con el fin de darnos cuenta quetan importante es tener un diseador de base de datos, ya que la aplicacin sin

  • 7/16/2019 16742271 Visual Basic Net

    64/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    164

    base de datos que maneje informacin se hara engorrosa y los datosno estaran tan seguros, veamos un ejemplo de este tipo de aplicacin sin unabase de datos, y como seria su programacin, primero veremos por formulario,as que el primero ser el formulario frmInfo.

    frmInfo

    Este formulario tendr un GropuBox que conservara su propio nombre y losLabels de este formulario que solo nos mostraran lo que decepcionandel otro formulario, tendrn los siguientes nombres, de acuerdo a suetiqueta de su costado; lblMainboard, lblProcesador, lblDiscoDuro,lblMemoriaRAM, lblTarjVideo,blTarjRed, lblCase.

    Y el nico que contendr el formulario va a ser en el control GroupBox1

    GroupBox1 (Evento Click)Me.Close()

    frmAplicacion90

  • 7/16/2019 16742271 Visual Basic Net

    65/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    165

    Ahora pondremos los nombres respectivos a cada control, en este caso, yosolo dara referencia a que control me refiero y ustedes deben de saberidentificar qu control es. Ok!, por ejemplo en qu forma se est mostrando los

    Buttons, los GroupBox y el PictureBox.

    QUE ES LO QUE SE PIDE?

    Para este caso se pide que esta aplicacin se pueda escoger un articulo y nosmuestre su imagen referencial, la marca y el modelo del artculo, y a su vez nosmuestre el precio unitario y el precio total, existe un caso en quecuando

    selecciona un CPU, se nos pueda mostrar su descripcin de ella nada mas,tambin

    podremos aadir los artculos seleccionados al carrito, y tambin eliminar

    elementos seleccionados y nos debe de mostrar el total de todos los productos,el

    subtotal y el IGV. Y para los que les guste hacerlo ms perfecto, tambin lepueden

  • 7/16/2019 16742271 Visual Basic Net

    66/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    166

    agregar un botn de impresin donde se imprimir el formulario en pantalla.

    Una vez ya tenido el diseos del formulario listo y sus descripciones que debetener, procederemos a codificacin.

    Realizar la siguiente aplicacin

    Seleccionar elproducto,ingresar lacantidad yalmacenar en

    una listasegn comose muestra enla imagen Ud.Debe tener encuenta quecuandoseleccione untem de lalista se deben

    seleccionartodos y pulsael botneliminar osuprimir ese

    tem se eliminara en todas las listas.

    Almacenar en una lista solo a los nmeros primos que existen entre el 1 y el 20

    Almacenar dentro un combo box el ingreso de un producto y cuando este seaseleccionado de la lista desplegable muestra en un list box la cantidad devocales, consonantes y espacios en blanco que tiene el tem.

  • 7/16/2019 16742271 Visual Basic Net

    67/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    167

    Practica N 1

    1.- Ingrese por teclado en una caja de texto la hora en formato de 24 horas yen otra caja de texto la cantidad de minutos al hacer clic en un boton deberasalir la hora en formato de 12 horas por ejemplo si se ingresa 23 en una caja yen la otra 12 el resultado seria 11:12:PM

    2.- Ingrese la cantidad de minutos hablados por una persona y escoja el tipo dellamada (Local, Nacional, Internacional).Se visualizara el importe de la llamadasabiendo que por los 3 primeros minutos se paga S/ 1.00 y por cada minutoadicional se paga 0.50 en caso sea local si es nacional se incrementa el 25% ysi es internacional se incrementa el 60% a los precios por minuto.

    3.- Ingresar el nombre de un trabajador, la cantidad de hijos y su sueldo, si estetiene hijos se le dar una bonificacin de S./40.00 por hijo y si no tiene hijos sele dara el 25% de su sueldo se deber mostrar la bonificacin y el sueldo final.

    4.- Ingrese por teclado dos nmeros y al escoger un signo de operacin sedebera mostrar el resultado de la operacin.

    5.- Ingrese un numero mximo de 2 cifras si el numero es de una cifra sedeber mostrar cuanto falta para convertirse en un numero de 2 cifras, y si esde 2 cifras se deber mostrar cuanto falta para convertirse en un numero de 3cifras.

    6.- Ingrese un numero cualquiera y muestre la cantidad de cifras que tienesegn sea el caso.

    Ejemplo: 203 = Tiene 3 cifras, 45678 = Tiene 5 cifras tome en cuenta que elnumero mximo a ingresar es un millon..

    7.- Ingrese por teclado el nombre, ao de nacimiento y sexo de una persona (Mo F),se deber mostrar uno de los siguientes mensajes.

    - Varon mayor de edad

    - Varon menor de edad

    - Dama mayor de edad

    -Dama menor de edad

    8.- Ingrese un numero y visualcelo en romano.

  • 7/16/2019 16742271 Visual Basic Net

    68/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    168

    9.- Ingrese por teclado el da de nacimiento y el mes de nacimiento de unapersona al hacer clic se deber mostrar su signo zodiacal as como tambindeber aparecer la imagen del signo Zodiacal en un control PictureBox.

    10.- Se deber desarrollar un algoritmo en el cual se deber ingresar el nombrede un alumno y se deber escoger el turno en el que estudia (M , T y N) asi

    como tambien el ciclo (I, II, III, IV, V, VI y SIDET) y la carrera (CI, Enfermeria yAdministracin) se debera calcular el pago de su pension en base a lossiguientes datos:

    el precio por carrera es:

    CI = 320.00

    Enfermeria = 280.00

    Administracin = 270.00

    Ademas que dependiendo del ciclo en el que estan se pagara un recargo delprecio de 10,20,30,40,50,60 y 70% (para sidet). Asi como tambien si es delturno se debera recargar 10% mas solo si esta en I, II, o III ciclo, si es delturno se recarga el 15 % mas solo si esta en I, o II y por utlimo si es delturno se se la hara un descuento del 15 % solo si esta en SIDET

    Al finalizar solo se debe mostrar el monto de la pension.

    11.- Realizar el siguiente formulario:

    .

    Se deber ingresar el largo y el anchodel terreno y conforme vayandigitndolo deber salir el total (Largo* ancho)

    Se deber ingresar el precio pormetro y al escoger una categora elprecio se incrementara en un 10, 20,y 30 % respectivamente segn lacategoria, ademas de salir el precio

    total que sera el total de area * elprecio y si se escogio en tipo dealquiler Contado se le hara unDescuento de 10% al precio total y sies credito se le hara un recargo de 15%.

  • 7/16/2019 16742271 Visual Basic Net

    69/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    169

    Finalmente se deber escoger si se pagara alumbrado, parques o serenazgosacando los % correspondientes al precio total segn indica el fomulario elprecio final debera salir al hacer clic en el boton calcular.

    Practica N 1

    1.- Ingrese un numero y Genere las siguientes series: (el resultado se mostraraen un label o en un text)

    1,3,5,7,..... -1,+3,-5,+7... 1,3,2,5,3,7,4,9,5,11.... 0,1,1,2,3,5,8,13...(Serie Fibonacci)

    2.- Genere 100 numeros aleatorios y diga cuantos primos mayores a 50hay,perfectos menores a 10 hay, pares e impares.

    3.- Genere 100 numeros aleatorios y al finalizar diga cual es el mayor y elmenor.

    4.- Ingrese un numero de cualquier cifra y mostrarlo en forma invertida

    5.- Ingrese un numero y convirtalo en base 2

    6.- Ingrese una cadena y muestre lo siguiente

    La cadena en forma invertida Diga cuantas vocales tiene Diga cuantos espacios en blancos hay

    7.- Ingrese una cadena y convirtalo en mayscula y en minusculas sin utilizarlas funciones ucase y lcase.

    8.- Genere 10 numeros aleatorios y si el numero es par se debera incrementarel numero con la suma de su raiz cuadrada,si el numero es impar se deberaincrementar el numero con la suma del seno del numero. AL finalizar se debemostrar la suma de todos los numeros.

    9.- Ingrese Una fecha y diga cuantos dias faltan para acabar el ao, cuantosdias han pasado desde esa fecha hasta la fecha actual, que dia cae esa fecha(Lunes,martes), y muestre la misma fecha en el siguiente formato: Lunes 15

    de Abril de 2003 (Por ejemplo)

    10.- Ingrese en una caja de texto una cadena y al finalizar diga cuantaspalabras tiene dicha cadena y cual es la cantidad de caracteres que tiene lapalabra con mayor longitud

    11.- Ingrese un usuario y un password y si se equivoca tres veces debe salir

  • 7/16/2019 16742271 Visual Basic Net

    70/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    170

    de la aplicacin

    12.- Realice el siguiente formulario:

    En este formulario se debera escoger un color y un objeto(checks,text,options)y al hacer clic en fondo o en letra debera cambiar al color que se ecogio ya sea

    el fondo(backcolor o la letra(forecolor)

    Luego al hacer clic en cursiva (font.italic) o en negrita (font.bold) o subrayado(font.underline) se debera cambiar la apariencia de los controles que se

    escogio

    (Checks,

    text,Options)

    13.-Realice el

    siguiente formulario:

    Cuando se haga clic en Mostrar Resultado se debe mostrar la edad del

    trabajador, el tiempo de servicio y el codigo que se generara de la siguientemanera: el ao de ingreso luego la letra o segn su sexo , los 2primeros caracteres de su apellido paterno, los 2 primeros caracteres de suapellido materno, el primer carcter de su nombre y un correlativo

    Ademas al ingresar sus nombres al perder el enfoque se debera cambiar eltexto por maysculas y al entrar al enfoque de algun texto el color de fondodebera cambiar y al salir del enfoque debera regresar al color original que tuvo.

  • 7/16/2019 16742271 Visual Basic Net

    71/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    171

    Semana 4 : Uso de Controles ComunesLos controles radio y checkbox

    El control RadioButton

    Es el control de seleccin de opciones, el cual permite seleccionar una opcion, de unconjunto de opciones.

    Este control se utiliza en forma grupal, agrupados por un control GroupBox.

    Las propiedades de este control:

    Los eventos que utiliza con mayor frecuencia el Button.

    Ejemplo 8

    Desarrolle un programa donde al seleccionar un estado civil visualice:

    Soltero:

    Sueldo 450, Tiempo deServicio 5, No Hijos: 2

    Casado:

    Sueldo 250, Tiempo de

    Servicio 2, No Hijos: 0

    Diseo de controles.

  • 7/16/2019 16742271 Visual Basic Net

    72/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    172

    btnsalir (Evento clic)

    Me.Close()

    rdbsoltero (Evento CheckedChanged)

    lblestado.Text = N de Hermanos:lblsueldo.Text = 200.00

    lbltiempoest.Text = Edad:txttiempest.Focus()

    rdbcasado (Evento CheckedChanged)

    lblestado.Text = N de Hijos :lblsueldo.Text = 250.00

    lbltiempoest.Text = Tiempo de Servicio :txttiempest.Focus()

    frmaplicacion (Evento load)

    Iniciar()

    btnnuevo (Evento clic)

    Iniciar()

    Funcin Iniciar

    Sub Iniciar()

    txtnombre.Text = :txttiempest.Text = :txtnumest.Text =

    rdbsoltero.Checked = True :lblestado.Text = N de Hermanos

    lblsueldo.Text = 200.00 :lbltiempoest.Text = Edad

    txtnombre.Focus()

    End Sub

    El control CheckBoxEs el control de seleccin de opciones, el cual permite seleccionar una opcin en el

    control: marcado o desmarcado.

    Este control se utiliza en forma individual, a diferencia del RadioButton. Las propiedades de

  • 7/16/2019 16742271 Visual Basic Net

    73/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    173

    este control:

    Los eventos que utiliza con mayor frecuencia el Button.

    Ejemplo 9

    Disee un programa para calcular el monto de su remuneracin. Ingrese sunombre, seleccione su categora:

    Empleado Sueldo500Obrero Sueldo 550Auxiliar Sueldo 200

    Seleccione:

    Bonificacin: 25% del sueldo y movilidad: 15% del sueldo.

    El monto es lasuma de susingresos.

  • 7/16/2019 16742271 Visual Basic Net

    74/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    174

    Private bonificacion, movilidad As Single

    Private Sub RadioButton1_CheckedChanged() HandlesRadioButton1.CheckedChangedTXTSUELDO.Text = 500End Sub

    Private Sub RadioButton2_CheckedChanged() HandlesRadioButton2.CheckedChangedTXTSUELDO.Text = 550End Sub

    Private Sub RadioButton3_CheckedChanged() HandlesRadioButton3.CheckedChangedTXTSUELDO.Text = 200End Sub

    Private Sub CheckBox1_CheckedChanged() Handles

    CheckBox1.CheckedChangedIf CheckBox1.Checked = True Then

    bonificacion = 0.25 * Convert.ToSingle(TXTSUELDO.Text)Else: bonificacion = 0End IfTXTMONTO.Text=Convert.ToSingle(TXTSUELDO.Text)+bonificacion +movilidadEnd Sub

    Private Sub CheckBox2_CheckedChanged() HandlesCheckBox2.CheckedChangedIf CheckBox1.Checked = True Then

    movilidad = 0.15 *Convert.ToSingle(TXTSUELDO.Text) Else: movilidad = 0End IfTXTMONTO.Text = Convert.ToSingle(TXTSUELDO.Text) + bonificacion +movilidadEnd Sub

  • 7/16/2019 16742271 Visual Basic Net

    75/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    175

    Private Sub BTNLIMPIAR_Click() Handles BTNLIMPIAR.ClickTXTEMPLEADO.Text = TXTSUELDO.Text = TXTMONTO.Text = RadioButton1.Checked = False RadioButton2.Checked = FalseRadioButton3.Checked = False CheckBox1.Checked = FalseCheckBox2.Checked = FalseEnd Sub

    El control PictureBox

    Este control nos permite mostrar una imagen de una ruta especfica.

    Comentarios

    Se suele utilizar el control PictureBox para mostrar grficos de un archivo de

    mapa de bits, metarchivo, icono, JPEG, GIF o PNG.

    Establezca la propiedad image en el objeto Image que desea mostrar, ya sea

    en tiempo de diseo o en tiempo de ejecucin. Adems, puede especificar la

    imagen estableciendo la propiedad imagelocation y cargar la imagen de forma

    sincrnica utilizando el mtodo Load o de forma asincrnica mediante el

    mtodo LoadAsing.

    Nota:

    Si desea utilizar la misma imagen en varios controles PictureBox, cree un

    clon de la imagen para cada control PictureBox. Obtener acceso a la mismaimagen desde varios controles hace que se produzca una excepcin.

    La propiedad sizemode, establecida en los valores en la enumeracin

    PictureBoxSizeMode, controla el recorte y la posicin de la imagen en el rea

    de presentacin. Se puede cambiar el tamao del rea de presentacin en

    tiempo de ejecucin con la propiedad ClientSize.

    De forma predeterminada, el control PictureBox se muestra sin bordes. Para

    proporcionar un borde estndar o tridimensional, utilice la propiedad

    BorderStyle con el fin de distinguir el cuadro de imagen del resto del formulario,

    incluso si no contiene ninguna imagen. El control PictureBox no se puede

    seleccionar, lo que significa que no puede recibir el foco de entrada.

  • 7/16/2019 16742271 Visual Basic Net

    76/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    176

    Ejemplo 10

    En la figura 1 tienes el formulario en tiempo de diseo, que como puedes veres muy simple:Una caja de textos(txtFic) para el nombre

    del fichero a mostrar, unbotn (btnExaminar)para seleccionar elfichero a mostrar, unPictureBox (pic) paramostrar la imagen, tresRadioButtons(optRotarIzq,optRotarDer yoptRotarLibre) paradiferentes opciones derotacin y un botn para

    rotar la imagen(btnRotar).

    Imports Microsoft.VisualBasicImports SystemImports System.Windows.FormsImports System.Drawing

    Public Class Form1Private inicializando As Boolean = True

    Private Sub Form1_Load() Handles MyBase.Loadpic.SizeMode = PictureBoxSizeMode.StretchImagetxtFic.Text = My.Settings.txtPic' Si existe la imagen, cargarlaIf System.IO.File.Exists(txtFic.Text) Then

    pic.Load(txtFic.Text)End IfSelect Case My.Settings.optRotar

    Case -1optRotarIzq.Checked = TrueoptRotarDer.Checked = FalseoptRotarLibre.Checked = False

  • 7/16/2019 16742271 Visual Basic Net

    77/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    177

    Case 0optRotarIzq.Checked = FalseoptRotarDer.Checked = TrueoptRotarLibre.Checked = False

    Case ElseoptRotarIzq.Checked = False

    optRotarDer.Checked = FalseoptRotarLibre.Checked = TrueEnd Selectinicializando = False

    End Sub

    Private Sub optRotarIzq_CheckedChanged() HandlesoptRotarIzq.CheckedChanged,

    optRotarDer.CheckedChanged, optRotarLibre.CheckedChanged' Este evento se produce al asignar el valor inicial' y si eso ocurre, no vale de nada el valor de SettingsIf inicializando Then Exit Sub

    Select Case TrueCase optRotarIzq.Checked

    My.Settings.optRotar = -1Case optRotarDer.Checked

    My.Settings.optRotar = 0Case Else

    My.Settings.optRotar = 1End Select

    End Sub

    Private Sub txtFic_KeyUp() Handles txtFic.KeyUpIf e.KeyCode = Keys.Return Thene.Handled = True' Si existe la imagen, cargarlaIf System.IO.File.Exists(txtFic.Text) Then

    pic.Load(txtFic.Text)End If

    End IfEnd Sub

    Private Sub btnExaminar_Click( ) Handles btnExaminar.ClickDim ofd As New OpenFileDialog

    With ofd.FileName = txtFic.Text.Filter = "Imgenes|*.jpg;*.png;*.gif;*.bmp|Todos (*.*)|*.*"If .ShowDialog = DialogResult.OK Then

    txtFic.Text = .FileNameMy.Settings.txtPic = txtFic.Textpic.Load(.FileName)

    End If

  • 7/16/2019 16742271 Visual Basic Net

    78/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    178

    End WithEnd Sub

    Private Sub btnRotar_Click() Handles btnRotar.ClickDim bmp As Image = pic.ImageIf optRotarIzq.Checked Then

    bmp.RotateFlip(RotateFlipType.Rotate90FlipXY)ElseIf optRotarDer.Checked Then

    bmp.RotateFlip(RotateFlipType.Rotate270FlipXY)Else

    bmp.RotateFlip(RotateFlipType.Rotate90FlipNone)End Ifpic.Image = bmp

    End Sub

    El control DateTimePicker

    Este control permite la seleccin e introduccin de fechas en una caja de textocon capacidades extendidas, o bien mediante un calendario desplegable que

    se mostrar al pulsar el botn de expansin que

    contiene.

    Ejemplo 11

    Private Sub frmDatosPersonal_Load() HandlesMyBase.Load

    ' modificar fecha del DateTimePicker

    Me.dtpFNacim.Text = "15/06/2002"End Sub

    Podemos restringir el rango de fechas a mostrar por este control conlas propiedades MinDate y MaxDate. Si queremos, por otra parte, quela fecha se muestre con un formato personalizado, aplicaremos dichoformato mediante la propiedad CustomFormat, teniendo en cuenta que nose har efectivo hasta que a la propiedad Format no le asignemos el valorCustom.

    El botn btnCambiosFecha del formulario realiza algunas modificaciones por

    cdigo sobre el control DateTimePicker dtpFNacim del formularioPrivate Sub btnCambiosFecha_Click(ByVal sender As System.Object, ByVal eAs

    System.EventArgs) Handles btnCambiosFecha.Click

    ' configurar por cdigo el

    ' control DateTimePicker

  • 7/16/2019 16742271 Visual Basic Net

    79/366

    Facultad de Ingenieria Industrial y de Sistemas

    Ing. Alberto Moreno CuevaPgina

    179

    Me.dtpFNacim.MinDate = "1/4/2002"