manualvb.net
TRANSCRIPT
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
1111
Migrando a la Nueva Programación…Migrando a la Nueva Programación…Migrando a la Nueva Programación…Migrando a la Nueva Programación…
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
2222
Entorno De Visual Basic .Net 2003
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
3333
Visual Basic es un sistema que esta diseñado para crear programas ya sea
tan sencillos como los que vamos a ver y tan difíciles (aunque es solo una expresión) como lo es con base de datos. El acceso directo es depende a donde se instalo, lo único que cambia es que ahora se utiliza una misma ventana de ingreso para cualquier programa de visual Studio .Net (Visual C#, Visual C++, Visual Basic) deseemos practicar.
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
4444
A comparación de la pantalla inicial de visual Basic 6.0 es que en esta pantalla aparecerá los últimos programas hechos o accedidos con su respectiva fecha, también podrá abrir cualquier solución de visual Studio .Net o crear una nueva.
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
5555
Para abrir una solución (proyecto), deberá darle clic en el botón de abrir proyecto y le aparecerá el explorador, no se preocupe, que el visual Studio .Net automáticamente seleccionara el archivo a abrir.
Ahora, lo que mas nos interesa, crear un nuevo proyecto, al dar clic en el botón nuevo proyecto te aparecerá el siguiente explorador, bueno todo lo que explico es para personas que ya han programado en visual Basic 6.0 y desean migrar a Visual Basic .Net, bueno si lo lee uno que recién quiere aprender a programar le recomendaría que se compre el libro de Visual Basic .Net 2005 de José Canchucaja Vilchez o visiten la web de elguille, bueno sigamos.
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
6666
Si se habrán dado cuenta, siempre se inicia en el visual Basic, y aparece seleccionado la opción Aplicación para Windows, justamente lo que más vamos a utilizar, para programar. En donde dice nombre, va a ir el nombre de nuestro proyecto, y en donde dice ubicación es en donde se va a ubicar nuestro proyecto o mejor dicho en donde lo vamos a guardar. Ahora veremos el entorno del visual Basic y de ahí a realizar pequeños programas por no decir todos lo programas hechos en visual Basic 6.0 del libro de Juan José Castañeda León, que para mi criterio es uno de los mejores autores de libros de programación, que hay en el Perú.
Explorador del Proyecto
Ventana de Propiedades Formulario Caja de Herramientas
Explorador de Servidores
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
7777
A esta nueva caja de herramientas de este visual por default esta activa el auto ocultamiento de la misma, igual que el explorador de servidores. Uno de los nuevos controles que tiene esta nueva versión el Linklabel que esta orienta a conexión a Internet, y además te darás cuenta que en la creación de un nuevo objeto, como lo es el de menús, esta aparece en la parte inferior como si fuera un control, para hacernos mas fácil la edición de este control, bueno conforme avancemos en la programación les iré explicando los nuevos métodos o propiedades de los controles, antes que se aburran, vayamos a crear nuestra primera aplicación, porque si son como yo, no me gusta mucho la palabrería, porque me gusta mas la acción jejeje, bueno comencemos y cualquier consulta me escriben a mi email okis, es [email protected] comencemos. Se me olvidaba, primero veremos las nuevas propiedades del formulario, los que mas vamos a usar, es algo corto no se preocupen, okis. AcceptButton.- Aquí establecemos que botón se activa al presionar la tecla Enter en el formulario, mejor dicho ejecuta el código del botón mayormente llamado “Aceptar” CancelButton.- Aquí establecemos que botón se activa al presionar la tecla Esc en el formulario, mejor dicho ejecuta el código del botón “Cancelar”. HelpButton.- Este botón Help (Ayuda), solo aparece cuando están desactivados los dos botones de Minimize y Maximize, en otras palabras solo esta disponible para los formularios Fixed Single. Opacity.- Esta propiedad establece que tan opaco, mejor dicho que tan transparente puede ser el formulario, el 100% indica que no es transparente, y el 0% indica que el formulario va a ser totalmente transparente, en otras palabras va a ser invisible. Ahora si vayamos a programar, sorry.
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
8888
Controles Básicos
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
9999
Aplicación N° 01 Esta aplicación es fácil de hacer, pero la cosa es divertirse y aprender okis, el formulario que vas a crear deberá tener el siguiente diseño. El Proyecto se Llamara Aplicacion01 y el Formulario se llamará frmaplicacion01.
Como tu mismo ves va a tener los siguientes controles: Control AutoSize BorderStyle Font TextAlign
Label1 True None Microsoft Sans Serif, 28
TopLeft
Label2 False Fixed 3D Microsoft Sans Serif 13
MiddleCenter
Label3 Trae None Microsoft Sans Serif, Subrayado, 10
TopRight
Control Text
Label1 Visual Basic .Net Label2 Migrando a la Nueva Programación …
Label3 Mi nombre es Joel Martin Chuco Marrufo Si te habrás dado cuenta a la hora de utilizar la propiedad de TextAlign del control Label, este te muestra una imagen en donde hay nuevo opciones de alienar el texto a comparación de la versión anterior que solo te mostraba tres opciones.
Lado Inferior, pero centrado a los costados
Lado Derecho, pero centrado arriba y abajo
Lado Izquierdo Inferior
Lado Izquierdo Superior
Lado Izquierdo, pero centrado arriba y abajo
Lado Derecho Superior
Lado Derecho Inferior
Lado Superior, pero centrado a los costados Centrado al medio, a los cuatros lados
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
10101010
Luego de la pequeña explicación sigamos con la aplicación, para poder ejecutar la aplicación puedes presionar la tecla F5 o ir a la barra de menú y después a Depurar -> Iniciar, y por fin veraz tu primera aplicación hecha en Visual Basic .Net. Nota: Si te sale un error al querer ejecutar tu aplicación donde te dice: No se encontró ‘Sub main’ en ‘Aplicacion01.Form01’. Esto se debe al cambio del nombre del formulario en la propiedad name que hacemos, así que lo único que tienes que hacer es lo siguiente:
• Al salirte este mensaje le das clic en No
• Después te diriges hacia la parte inferior de la ventana y le das doble clic en donde dice el error
• Y al salirte esta ventana, seleccionas el nombre del formulario y le das aceptar y ejecutas de nuevo tu programa, y listo, ya funciona.
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
11111111
Aplicación N° 02 Bueno seguiremos con las aplicaciones del Libro de Juan José Castañeda León (Visual Basic 6.0), todavía no vamos a tocar lo que es código, primero tendremos que aprender lo que nos trae de nuevo esta nueva versión del visual para el diseño de nuestros formularios. Siguiendo con los diseños, esta aplicación diseñaremos un nuevo formulario, como les digo solo diseñaremos okis. Para esta aplicación crearemos un nuevo proyecto llamado Aplicacion02 y el formulario llamado frmaplicacion02, que tendrá el siguiente diseño.
A comparación de la versión anterior de visual Basic, antes podíamos agrandar la caja de texto sin ser necesario modificar la propiedad multiline a true, bueno ahora con esta nueva versión nos obliga a cambiar la propiedad multiline a true para poder recién modificar el tamaño. Control AutoSize BorderStyle Font TextAlign
Label1 True Fixed 3D Microsoft Sans Serif, Negrita, 12
MiddleCenter
Label2 False None Microsoft Sans Serif 8
TopLeft
Label3 True None Microsoft Sans Serif, 8
TopLeft
Label4 True None Microsoft Sans Serif, 8
TopLeft
Label5 True None Microsoft Sans Serif, 8
TopLeft
Label6 True None Microsoft Sans Serif, Negrita, 8
MiddleCenter
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
12121212
Control Text
Label1 Datos Personales Label2 Nombre Label3 Dirección Label4 Teléfono Label5 Centro de Estudios Label6 Observaciones
Control Text Multiline ScrollBars TextBox1 En Blanco False None TextBox2 En Blanco False None TextBox3 En Blanco False None
TextBox4 En Blanco False None TextBox5 En Blanco True Vertical
Aplicación Propuesta N° 01 Esta aplicación lo harán sin mi ayuda (Que fácil no?), no se preocupen es solo puro diseño aquí les dejo la interfaz okis.
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
13131313
Aplicación N° 03 Esta aplicación todavía es solo diseño, así que crearemos un nuevo proyecto llamado Aplicacion03 y un formulario llamado frmaplicacion03, que tendrá la siguiente interfaz.
Características: 1.- En el ciclo debe ingresar hasta 03 caracteres. 2.- En el sexo sólo un carácter. 3.- En la clave hasta 05 caracteres y no se debe visualizar a medida que ingresa. 4.- No se debe permitir el ingreso de la dirección electrónica.
Control AutoSize BorderStyle Font TextAlign
Label1 True None Microsoft Sans Serif, 8
TopLeft
Label2 True None Microsoft Sans Serif 8
TopLeft
Label3 Trae None Microsoft Sans Serif, 8
TopLeft
Label4 True None Microsoft Sans Serif, 8
TopLeft
Label5 True None Microsoft Sans Serif, 8
TopLeft
Label6 False Fixed 3D Microsoft Sans Serif, Cursiva, 8
MiddleCenter
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
14141414
Control Text
Label1 Nombre Label2 Ciclo (del I al X) Label3 Sexo (F/M) Label4 Clave
Label5 Dirección Electrónica
Label6 La dirección electrónica es asignada después de ingresar todos los registros, por lo tanto, Ud. no podrá ingresarla.
Control Text ReadOnly MaxLength PasswordChar
TextBox1 En Blanco False TextBox2 En Blanco False 3 TextBox3 En Blanco False 1
TextBox4 En Blanco False 5 TextBox5 En Blanco True *
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
15151515
Aplicación N° 04 Bueno dirán ustedes, Cuando vamos a comenzar a codificar?, bueno la respuesta es que en está aplicación por fin podremos codificar, aunque sea un poco, pero algo es algo dicen, para esto crearemos un nuevo proyecto llamado Aplicacion04 y un formulario llamado frmaplicacion04, que tendrá el siguiente diseño, si se han dado cuenta el diseño se parece al de la aplicación 02, así que pueden hacerlo en la misma ventana de la aplicación 02, si les da flojera diseñar esta interfaz okis.
Bueno ya no les voy a decir las propiedades de cada control, solo les voy a indicar con que nombre voy a trabajar por cada control y que a la propiedad CancelButton del formulario le asignen el botón finalizar, para que a la hora de presionar la tecla Esc, este ejecute el código de este botón okis.
Control Name Button1 btnnuevo Button2 btnfinalizar TextBox1 Txtnombre
TextBox2 Txtdireccion TextBox3 Txttelefono TextBox4 Txtce TextBox5 txtobservaciones
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
16161616
Ahora codificaremos el botón nuevo, para entrar a la ventana de diseño de código le daremos doble clic en el botón nuevo y aparecerá el siguiente código Private Sub btnnuevo_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnnuevo.Click End Sub Y a continuación codificaremos lo siguiente: txtnombre.Text = "" txtdireccion.Text = "" txttelefono.Text = "" txtce.Text = "" txtobservaciones.Text = "" txtnombre.Focus() y quedara algo asi:
Y en el botón finalizar, codificaremos lo siguiente:
Me.Close()
Y visualizaras algo así:
Bueno ahora viene lo mas interesante, que es la explicación, comencemos, por el código de Focus(), este método tiene la misma función que hacia el código de la versión anterior que es le Setfocus, que es la de devolver el foco al control indicado.
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
17171717
Ahora el código de Me.Close(), este código hace lo mismo que hacia los códigos de la versión anterior que era el de End o el de Unload Me (Aunque estos dos códigos aun lo acepta la nueva versión), que es la de cerrar la aplicación y de liberar la memoria, para que el espacio que ocupe esta aplicación en la memoria, pueda ser utilizada por otra aplicación.
Aplicación Propuesta N° 02 Bueno ahora que seguro que ya tienen ganas de programar, al saber que casi no ha cambiado el código a comparación de la versión anterior les dejare un aplicación para que ustedes de luzcan poniendo todo su conocimiento en ello, solo les dejo la interfaz y lo que pide esta aplicación.
Características 1. Al dar clic en el botón nombre, me deberá Mostar en el control TextBox el
nombre del autor, o sea sus nombres y apellidos de usted. 2. Al dar clic en el botón Centro de Estudios, me deberá Mostar el nombre del
centro de estudios de usted. 3. Al dar clic en el botón Fecha de Nacimiento, me deberá Mostar la fecha de
nacimiento de usted. 4. Al dar clic en el botón Salir, este terminara la aplicación. 5. Al dar clic en cada botón, este dará el foco al siguiente botón. 6. Y por ultimo al presionar la tecla Esc, este cerrara la aplicación.
Eso es todo, no les pido nada mas, así que suerte!
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
18181818
Aplicación N° 05 Esta aplicación se parece bastante a la aplicación anterior, así que para
desarrollar esta aplicación crearemos un nuevo proyecto llamado Aplicacion05 y un formulario llamado frmaplicacion05, que tendrá la siguiente interfaz.
Las características de los controles del formulario son las siguientes:
Control Text Label1 Nombre
Label2 Fecha de Nacimiento Label3 DNI Label4 Domicilio Actual
Control Name Text TextBox1 Txtnombre En Blanco
TextBox2 Txtfecnac En Blanco TextBox3 Txtdni En Blanco TextBox4 Txtdomact En Blanco Button1 Btnnuevo &Nuevo Button2 Btnsalir &Salir
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
19191919
El código que va a tener el btnnuevo es el siguiente:
txtnombre.Text = "" txtfecnac.Text = "" txtdni.Text = "" txtdomact.Text = "" txtnombre.Focus() Y el del btnsalir es el siguiente: Me.Close()
Con esta aplicación concluimos este segundo capitulo, así que ahora tocaremos un poco mas de programación codificada en el siguiente capitulo.
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
20202020
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
21212121
Elementos de Programación, Programando de Verdad
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
22222222
Aplicación N° 06
Esta aplicación muestra la diferencia entre una variable declarada con DIM y STATIC dentro de un procedimiento.
• Paso N° 01: Dibujar los controles. • Paso N° 02: Asignar los nombres a los controles. Como ustedes se habrán dado
cuenta, yo acostumbro a ponerle un nombre especifico a cada control que voy a utilizar, y en esta aplicación no puede ser la excepción, los siguientes nombres que vana tener los controles son:
Control Name
Label3 lbla Label4 lblb Button1 btnincrementa
• Paso N° 03: Escribir las instrucciones btnincrementa (Evento Click) Dim a As Integer Static b As Integer a = a + 1 b = b + 1 lbla.Text = a lblb.Text = b � Como usted observara que al dar clic en el botón “Incrementa a la Variable A y
B”, la variable “a” no se incrementa, por estar declarada como DIM, que permite reinicializar una variable cada vez que se ejecuta un procedimiento, a comparación de la variable “b”, que esta almacena su valor asignado, hasta que la aplicación termine, bueno sigamos con las aplicaciones, ya que tu debes saber todo esto, ya que haz llevado Visual Basic 6.0, así que explicare mas detalladamente en el manual de principiante, para que los que no sepan, lo tengan en claro la diferencia, sigamos entonces.
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
23232323
Aplicación N° 07 Les diré ahora lo que nos pide esta aplicación, nos pide que al ingresar un nombre de un trabajador, las horas normales que ha trabajado, las horas extras, el pago por cada hora normal y extra. Al dar clic en el botón de calcular nos deberá mostrar lo siguiente: total del pago por las horas normales y extras, el subtotal, su descuento del 10 % y el total a pagarle (el subtotal menos el descuento).
• Paso N° 01: Diseñar el formulario, preferiría que lo hicieran lo mejor posible. • Paso N° 02: Asignarles los nombres específicos para cada control.
Control Name TextBox1 txtnom TextBox2 txthtn
TextBox3 txthe TextBox4 txtpxhn
TextBox5 txtpxhe Label11 lbltxhn Label12 lbltxhe Label13 lblsubtotal Label14 lbldescuento Label15 lbltp Button1 btnnuevo
Button2 btnsalir Button3 btncalcular
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
24242424
• Paso N° 03: Uno de los pasos más difíciles, escribir las instrucciones. btnsalir (Evento click) Me.Close()
btnnuevo (Evento click) txtnom.Text = "" txthtn.Text = "" txthe.Text = "" txtpxhn.Text = "" txtpxhe.Text = "" lbltxhn.Text = "" lbltxhe.Text = "" lblsubtotal.Text = "" lbldescuento.Text = "" lbltp.Text = "" txtnom.Focus()
btncalcular (Evento click) Dim hnt, het, phn, phe, thn, the, st, des, tp As Single Const descuento = 10 hnt = Val(txthtn.Text) 'Horas Normales Trabajadas het = Val(txthe.Text) 'Horas Extras Trabajadas phn = Val(txtpxhn.Text) 'Pago por Horas Normales phe = Val(txtpxhe.Text) 'Pago por Horas Extras thn = hnt * phn 'Total de Pago por las Horas Normales the = het * phe 'Total de Pago por las Horas Extras st = thn - the 'Sub Total des = st * descuento / 100 'Descuento tp = st - des 'Total a Pagar lbltxhn.Text = Format(thn, "### ###.##") lbltxhe.Text = Format(the, "### ###.##") lblsubtotal.Text = Format(st, "### ###.##") lbldescuento.Text = Format(des, "### ###.##") lbltp.Text = Format(tp, "### ###.##")
� Hasta ahora hemos visto pequeños cambios que ha tenido el Visual Basic en su
codificación, ya sea con el Setfocus, que ahora es Focus, el Unload Me o End por el Me.Close(), bueno ahora con la siguiente aplicación veremos otro pequeño cambio que tiene el visual Basic en una función bastante usada que es el KeyAscci, asi que vayamos con la siguiente aplicación.
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
25252525
Aplicación N° 08 Ahora con esta aplicación que se parece mucho a la aplicación N° 02 (en la interfaz) no les voy a pedir mucho, solo que al presionar ENTER en cada caja de texto (TextBox), este le pase el foco al siguiente TextBox, y al presionar la tecla ESC o dar clic en el botón Finalizar, nos salga un mensaje de advertencia, así que comencemos.
• Paso N° 01: Diseñar el formulario. • Paso N° 02: Asignar los nombres a los controles.
Control Name
TextBox1 txtnombre TextBox2 txtdireccion
TextBox3 txttelefono TextBox4 txtce TextBox5 txtobservaciones Button1 btnnuevo
Button2 btnsalir
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
26262626
• Paso N° 03: Escribir las instrucciones, bueno mejor dicho copien, y de ahí les explico okis.
btnnuevo (Evento click) txtnombre.Text = "" txtdireccion.Text = "" txttelefono.Text = "" txtce.Text = "" txtobservaciones.Text = " " txtnombre.Focus() btnsalir (Evento Click) en una sola Línea la comparación okis. If MsgBox("¿Desea Salir de la Aplicación?", MsgBoxSty le.Question.YesNo, "Aplicación N° 08") = MsgBoxResult.Yes Then
Me.Close() End If
txtnombre (Evento KeyPress) If Asc(e.KeyChar) = 13 Then
txtdireccion.Focus() End If txtdireccion (Evento KeyPress) If Asc(e.KeyChar) = 13 Then
txttelefono.Focus() End If
txttelefono (Evento KeyPress) If Asc(e.KeyChar) = 13 Then
txtce.Focus() End If
txtce (Evento KeyPress) If Asc(e.KeyChar) = 13 Then
txtobservaciones.Focus() End If txtobservaciones (Evento KeyPress) If Asc(e.KeyChar) = 13 Then
btnfinalizar.Focus() End If
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
27272727
� Bueno les diré que no soy tan bueno en las explicaciones así que tratare de ser lo mas claro, lo bueno que ustedes ya han programado seguro con este código, así que será más fácil, comencemos.
Primero comencemos con ver el código que seria en visual Basic 6.0 If keyascci = 13 Then
Text2.SetFocus End If
Como sabemos, el valor en el código ASCII de la pulsación de la tecla ENTER es 13, bueno, antes nos bastaba escribir ese código en el evento KeyPress, ahora tenemos que escribir este código en el visual Basic.Net 2003. If Asc(e.KeyChar) = 13 Then
TextBox2.Focus() End If Comencemos con la explicación, si se dan cuenta que en el procedimiento del TextBox hay dos argumentos que se pasa, que es el “Sender” y el “e”, a comparación de la versión anterior que solo era el “Keyascii”, bueno les diré que en el argumento “e” se encuentran todos los eventos, procedimientos y funciones que están en ejecución, como lo es el “KeyChar”, que es una función que nos devuelve el carácter que ha sido digitado, este carácter es de variable string, es por ello que usamos la función “Asc”, que convierte en código ASCII a cualquier carácter que le enviemos a esta función, bueno espero que hayan entendido, sino, les diré algo resumido lo que significa el código okis. “Si la función Asc nos devuelve 13 en código ASCII, del argumento enviado, que es la tecla que digitemos en ese momento, que lo obtenemos mediante e.KeyChar, este dará el foco al siguiente TextBox”, bueno si no lo entendieron les aconsejaría leer el manual para principiantes que después lo voy a publicar, así que para no hacerla larga les voy a dejar una pequeña aplicación, que se parece mucha a esta, así que resuélvanlo solos, y háganlo lo mejor posible okis.
Aplicación Propuesta N° 03
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
28282828
Alicación N° 09 El siguiente programa permite ingresar los apellidos y nombres, fecha de ingreso, turno y promedio de un alumno. Teniendo las siguientes características: 1. El primer carácter de cada nombre o apellido debe convertirse en mayúscula y
el resto en minúsculas. 2. Se debe verificar la fecha ingresada este correcta. 3. En el turno solo debe aceptar las letras M, T y N. 4. El promedio debe ser un número entre 0 y 21. 5. Los botones Nuevo y Salir deben permanecer desactivados hasta que se
ingresen todos los datos correctos.
• Paso N° 01: Diseñar el formulario • Paso N° 02: Asignar los nombres a los respectivos controles.
Control Name
TextBox1 txtapenom TextBox2 txtfecing
TextBox3 txtturno TextBox4 txtpromedio Button1 btnnuevo Button2 btnsalir
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
29292929
• Paso N° 03: Escribir las instrucciones con mucha lógica, y sobre todo que
funcione. Bueno primero comencemos con crear funciones okis. Función Limpiar Function Limpiar() txtapenom.Text = "" txtfecing.Text = "" txtturno.Text = "" txtpromedio.Text = "" btnnuevo.Enabled = False btnsalir.Enabled = False txtapenom.Focus() End Function Función Mayúsculas Function Mayuscula(ByVal v) If (v >= 65 And v <= 90) Then Mayuscula = True Else Mayuscula = False End If End Function
Función Minúsculas Function Minuscula(ByVal v) If (v >= 97 And v <= 122) Then Minuscula = True Else Minuscula = False End If End Function Función Número Function Numero(ByVal v) If (v < 48 Or v > 57) Then Numero = False Else Numero = True End If End Function
Función Especial Function Especial(ByVal v)
If (v = 13 Or v = 32 Or v = 8 Or v = 225 Or v = 233 Or v = 237 Or v = 243 Or v = 250 Or v = 241 Or v = 209) Then
Especial = True Else Especial = False End If End Function Función Ingresados Function Ingresados() If Trim(txtapenom.Text) <> "" And IsDate(txtfecing.Text) And
Trim(txtturno.Text) <> "" And Trim(txtpromedio.Text) <> "" Then btnnuevo.Enabled = True btnsalir.Enabled = True Else btnnuevo.Enabled = False btnsalir.Enabled = False End If End Function
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
30303030
• Paso N° 04: Después de escribir las instrucciones en las funciones, ahora nos
toca escribir las instrucciones en los eventos de cada control. frmaplicacion09 (Evento Form_Load)
Limpiar() btnnuevo (Evento Click)
Limpiar() btnsalir (Evento Click) en una sola linea If MsgBox("¿Desea salir de la aplicación?", MsgBoxStyle.Question.YesNo, "Cuidado") = MsgBoxResult.Yes Then Me.Close() txtapenom (Evento KeyPress) Dim a, b, Longitud, Ascii As Integer Dim Temp As String Dim Caracter As Char If Asc(e.KeyChar) = 13 Then txtfecing.Focus() End If Longitud = (txtapenom.TextLength) - 1 If Longitud < 1 Then Longitud = Longitud + 1 Caracter = Microsoft.VisualBasic.Right(txtapenom.Text, 1) Caracter = UCase(Caracter) txtapenom.Text = "" txtapenom.Text = Caracter txtapenom.SelectionStart = Longitud + 1 Exit Sub End If Caracter = Mid(txtapenom.Text, Longitud, Longitud) Ascii = Asc(Caracter) If Ascii = 32 Then Temp = Microsoft.VisualBasic.Left(txtapenom.Text, Longitud) Caracter = Microsoft.VisualBasic.Right(txtapenom.Text, 1) Caracter = UCase(Caracter) txtapenom.Text = "" txtapenom.Text = Temp + Caracter txtapenom.SelectionStart = Longitud + 1 End If
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
31313131
txtfecing (Evento Leave) Antes LostFocus If IsDate(txtfecing.Text) Then Ingresados() Else MsgBox("Debe de ingresar una fecha correcta", MsgBoxStyle.Information,
"Cuidado") txtfecing.SelectionStart = 0 txtfecing.SelectionLength = Len(txtfecing.Text) txtfecing.Text = txtfecing.SelectedText txtfecing.Focus() End If txtfecing (Evento KeyPress) If Asc(e.KeyChar) = 13 Then txtturno.Focus() End If txtturno (Evento KeyPress) Dim Letra As String Dim Caracter As Char Letra = UCase(e.KeyChar) If Asc(e.KeyChar) = 13 Then Caracter = Microsoft.VisualBasic.Left(txtturno.Text, 1) If Caracter <> "M" And Caracter <> "T" And Caracter <> "N" Then MsgBox("Debe de Ingresar sólo letras M, T o N",
MsgBoxStyle.Information, "Error") txtturno.Text = "" txtturno.Focus() Exit Sub Else txtpromedio.Focus() End If Else txtturno.Text = "" If Letra <> "M" And Letra <> "T" And Letra <> "N" Then MsgBox("Debe de Ingresar sólo letras M, T o N",
MsgBoxStyle.Information, "Error") txtturno.Focus() btnnuevo.Enabled = False btnsalir.Enabled = False End If End If
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
32323232
txtpromedio (Evento KeyPress) If Numero(Asc(e.KeyChar)) Or Asc(e.KeyChar) = 8 Or Asc(e.KeyChar) = 13 Then Ingresados() Else MsgBox("Debe de Ingresar sólo número", MsgBoxStyle.Information, "Error") txtpromedio.Text = "" txtpromedio.Focus() btnnuevo.Enabled = False btnsalir.Enabled = False End If txtpromedio (Evento TextChanged) If Val(txtpromedio.Text) < 0 Or Val(txtpromedio.Text) > 20 Then MsgBox("El promedio debe estar entre 0 y 20", MsgBoxStyle.Information,
"Error") txtpromedio.SelectionStart = 0 txtpromedio.SelectionLength = Len(txtpromedio.Text) txtpromedio.Text = txtpromedio.SelectedText txtpromedio.Focus() btnnuevo.Enabled = False btnsalir.Enabled = False Else Ingresados() End If txtapenom (Evento TextChanged) Ingresados() txtturno (Evento TextChanged) Ingresados() txtturno (Evento Leave) Antes LostFocus Dim Caracter As Char Caracter = Microsoft.VisualBasic.Left(txtturno.Text, 1) If Caracter <> "M" And Caracter <> "T" And Caracter <> "N" Then MsgBox("Debe de Ingresar sólo letras M, T o N", MsgBoxStyle.Information,
"Error") txtturno.Text = "" txtturno.Focus() Exit Sub Else txtpromedio.Focus() End If
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
33333333
� Después de una larga codificación, viene la explicación, haber por donde
comenzamos, creo que por el cambio de código que ha tenido esta nueva versión, primero veamos de la función Left, en la versión 6.0 y después en la versión .Net.
En el visual Basic 6.0 el código de la función Left sería así: Dim Caracter As Char Caracter = Left(Text1.Text, 1) Y en el Visual Basic .Net 2003 seria así: Dim Caracter As Char Caracter = Microsoft.VisualBasic.Left(TextBox1.Text, 1) En esta nueva versión el visual Basic nos obliga que especifiquemos de que biblioteca estamos usando la función Left, asi que si no acepta alguna función que utilizabas en la versión anterior, solo es cuestión de revisar la librería de Microsoft.VisualBasic, por que allí encontraras varias funciones como lo es la función Right, Mid, Len, etc, así como las funciones de matemáticas puedes encontrarlas en la biblioteca Math, solo escribes Math. Y de ahí buscas la función que deseas. Bueno ya te explique el cambio que tuvo en la función Left, ahora me toca la de algunas propiedades, eventos y métodos que ha cambiado en el control TextBox, así que comencemos por los eventos, okis.
Visual Basic 6.0 Visual Basic .Net LostFocus Leave Change TextChanged
Load Form_Load KeyPress KeyPress
Como se habrán dado cuenta son algunos eventos nomás que han cambiado de nombre, refiriéndome a los más usados, bueno el KeyPress no ha cambiado de nombre, pero si el argumento que este recibe, como antes explique, ya no recibe el argumento ASCII, sino el argumento “e”, eso tengan bien en claro, para poder manejar los caracteres digitado en la ejecución. Que quede claro que el argumento “e” solo devuelve caracteres de tipo char, para ser comparados con algún código ASCII deberán convertir este carácter a un código ASCII mediante la función ASC, y que también que quede en claro que al argumento “e”, no le podrás asignar ninguna instrucción. Como por ejemplo: Para ignorar un digito ingresado en la versión 6.0 solo te bastaba digitar keyAscii = 0, en cambio en esta versión no podrás asignarle un valor, pero en la versión beta del 2005 si, este argumento “e”, si se le puede asignar valores a este argumento, así que te recomendaría que te prepares para esta nueva versión del Visual Basic que se llama Visual Basic 2005 Express Edition, buena ahora esta en versión Beta 2, pero les digo que es una versión con nuevos controles y nuevos tipos de formularios, y se parece mucho a la Versión 6.0 en cuanto a los eventos, y no a la codificación, me entienden?, bueno, entonces instalen el Beta que ya esta publicado en la pagina de Microsoft en español, cualquier duda me escriben a mi correo, y yo les diré un truquito para
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
34343434
bajarte la versión beta y llevártelo a tu casa a instalarlo, ya que es una instalación vía Internet, okis, ahora sigamos con la explicación. Bueno ahora me toca explicar sobre las funciones, como crear las funciones (aunque no hay mucho de explicar), bueno en esta nueva versión para crear una función solo basta escribir la palabra Function y el nombre de la función y darle un Enter, y nada mas, en eso si no ha cambiado. Bueno dejemos la palabrería y a seguir practicando.
Aplicación N° 10 Esta aplicación es algo parecido a las aplicaciones que vamos a hacer en el transcurso del todo el manual, ósea aplicaciones para empresas comerciales, ya que este rubro son los que nos da mas trabajo a los programadores.
Las características que les pido en este formulario es lo siguiente: 1. Al iniciar el formulario estén desactivados los botones de Depósito y Retiro y la
caja de texto de monto. 2. Al dar clic en el botón ok, este se ocultara y desactivara la caja de texto cliente,
y al mismo tiempo nos salga una ventana solicitándonos que ingresemos un monto específico, para la apertura de la cuenta.
3. Que por cada depósito o retiro que este haga, deberá de estar contabilizado por el sistema.
4. Y por ultimo que si al retirar una cantidad mayor a la de su saldo, me deberá de mostrar un error y no me permitirá retirar dicho monto
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
35353535
Ahora comencemos a desarrollar la aplicación.
• Paso N° 01: Diseñar el formulario, como se muestra, si quieren cámbienles de color, por que ustedes son libres de decidir, pero cuidado con poner color rosado en el formulario (si eres hombre).
• Paso N° 02: Asignar los nombres respectivos a los controles.
Control Name TextBox1 txtcliente
TextBox2 txtmonto Label7 lblcdeposito Label8 lblcretiro
Label9 lbltdeposito Label10 lbltretiro Label12 lblsaldo Button1 btnok
Button2 btndeposito Button3 btnretiro
Button4 btnnuevo Button5 btnsalir
• Paso N° 03: Ahora lo más fácil, la codificación, es fácil por que es una aplicación
pequeña, no como la otra que había un montón para codificar, así que comencemos, primero vamos a declarar variables a nivel del formulario, ósea después de donde dice Código generado por el Diseñador de Windows Forms.
Dim td, cd, tr, cr, saldo As Integer Función Iniciar Function Iniciar() td = 0 cd = 0 tr = 0 cr = 0 txtcliente.Text = "" txtmonto.Text = "" lblcdeposito.Text = "" lblcretiro.Text = "" lbltdeposito.Text = "" lbltretiro.Text = "" lblsaldo.Text = "" btnok.Visible = True btndeposito.Enabled = False btnretiro.Enabled = False txtcliente.ReadOnly = False txtmonto.ReadOnly = True txtcliente.Focus() End Function
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
36363636
frmaplicacion10 (Evento Form_Load) Iniciar() btnok (Evento Click) If txtcliente.Text = "" Or IsNumeric(txtcliente.Text) = True Then MsgBox("Debe de ingresar un nombre, con solo letras",
MsgBoxStyle.Information, "Banco - El Amigo") txtcliente.Text = "" txtcliente.Focus() Exit Sub End If txtcliente.ReadOnly = True txtmonto.ReadOnly = False btnok.Visible = False btndeposito.Enabled = True btnretiro.Enabled = True saldo = Val(InputBox("Monto de Apertura: La cuenta se apertura con
cualquier monto", "Monto de la Nueva Cuenta", 350)) lblsaldo.Text = (saldo.ToString) td = saldo cd = 1 lblcdeposito.Text = (cd.ToString) lbltdeposito.Text = (td.ToString) txtmonto.Focus() btndeposito (Evento Click) If txtmonto.Text = "" Or txtmonto.Text = "0" Or IsNumeric(txtmonto.Text) =
False Then MsgBox("Debe ingresar solo números mayor a 0",
MsgBoxStyle.Information, "Banco - El Amigo") txtmonto.Focus() Exit Sub End If Dim deposito As Integer deposito = Val(txtmonto.Text) td = td + deposito cd = cd + 1 'Estas tres líneas de código no es necesario, por que solo le asignaríamos 'a lblsaldo el valor de la variable td 'lblsaldo.Text=(td.ToString) saldo = Val(lblsaldo.Text) saldo = saldo + deposito lblsaldo.Text = (saldo.ToString) lblcdeposito.Text = (cd.ToString) lbltdeposito.Text = (td.ToString)
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
37373737
btnretiro (Evento Click) If txtmonto.Text = "" Or txtmonto.Text = "0" Or IsNumeric(txtmonto.Text) =
False Then MsgBox("Debe ingresar solo números mayor a 0",
MsgBoxStyle.Information, "Banco - El Amigo") txtmonto.Focus() Exit Sub End If Dim retiro As Integer retiro = Val(txtmonto.Text) saldo = Val(lblsaldo.Text) If saldo < retiro Then MsgBox("La cantidad que desea retirar excede a su saldo actual",
MsgBoxStyle.Information, "Lo sentimos") txtmonto.Text = "" txtmonto.Focus() Else tr = tr + retiro cr = cr + 1 lblcretiro.Text = (cr.ToString) lbltretiro.Text = (tr.ToString) lblsaldo.Text = ((saldo - retiro).ToString) End If btnsalir (Evento Click) If MsgBox("¿Desea salir de la Aplicacion?", MsgBoxStyle.Question.YesNo,
"Banco - El Amigo") = MsgBoxResult.Yes Then Me.Close() End If btnnuevo (Evento Click) Iniciar() � Creo que no les había explicado sobre el Nuevo código del MsgBox, bueno ahora
les diré en el formato que debes de escribir para mostrar un mensaje. MsgBox([Aquí va el mensaje que quieres mostrar, entre comillas], [escoges el tipo de mensaje a mostrar, ya se de pregunta, si o no o solo información etc.], [Aquí va el titulo del mensaje]) Si muestras un mensaje de decisión, aquí también puedes comparar la respuesta que el usuario de, como lo hago yo, en el mensaje salir, esto cambia a comparación del visual Basic 2005, que solo cambia un código.
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
38383838
Aplicaciones Propuestas N° 04 Este formulario les pide ingresar el nombre del producto, precio anterior y precio actual, luego deberá de calcular el alza en soles y el alza en porcentaje. El alza en porcentaje es igual al alza en soles por 100 / precio anterior, ejemplo: Precio Anterior = 50 Precio Actual = 80 Alza en Porcentaje = ((80-50) * 100)/50
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
39393939
Aplicaciones Propuestas N° 05 Esta aplicación nos pide ingresar el nombre del profesor, número de horas normales que ha trabajado y el número de horas extras, luego se debe de calcular el total que se le debe pagar por el número de horas normales, el total por horas extras y el total a pagar. Si ha trabajado mas de 48 horas su pago por horas es de S/. 8.00 y S/. 7.00 en caso contrario. Por hora extra S/. 9.50.
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
40404040
Aplicación N° 11
Se debe de ingresar el nombre de un producto, su precio unitario y la cantidad comprada de dicho producto, luego se debe calcular y visualizar el subtotal, el descuento en porcentaje, el descuento en soles y el total a pagar. El descuento en porcentaje se depende del subtotal, de acuerdo a la siguiente tabla:
SUBTOTAL DESCUENTO %
100 ó 101 2 % De 101.1 a 200 4 % De 200.1 a 500 6 % A partir de 500 10 %
• Paso N° 01: Diseñar el formulario como se muestra en la figura. • Paso N° 02: Asignar los nombres a cada control.
Control Name
TextBox1 txtproducto TextBox2 txtprecuni
TextBox3 txtcantcomp Label7 lblsubtotal Label8 lbldescP
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
41414141
Label9 lbldescS Label11 lbltotal
Button1 btncalcular Button2 btnnuevo Button3 btnsalir
• Paso N° 03: Ahora nos toca hacer la codificación, si te ha estado saliendo todo
bien hasta ahora y haz entendido, no te será difícil. Así que comencemos: Función Iniciar Function Iniciar(ByVal activar As Boolean) txtprod.Text = "" txtprecuni.Text = "" txtcantcomp.Text = "" lblsubtotal.Text = "" lbldescP.Text = "" lbldescS.Text = "" lbltotal.Text = "" btncalcular.Enabled = activar btnnuevo.Enabled = Not activar txtprod.Focus() End Function btnnuevo (evento Click) Iniciar(True) frmaplicacion11 (Evcento Load) Iniciar(False) btnsalir (Evento Click) If MsgBox("¿Desea salir de la aplicación?", MsgBoxStyle.Question.YesNo,
"Venta de Productos") = MsgBoxResult.Yes Then Me.Close() End If btncalcular (Evento Click) Dim desc As Single lblsubtotal.Text = (Format(Val(txtprecuni.Text) * Val(txtcantcomp.Text),
"### ###.##")).ToString Select Case Val(lblsubtotal.Text) Case 100 Or 101 desc = 0.02 Case 101.1 To 200 desc = 0.04 Case 200.1 To 500 desc = 0.06
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
42424242
Case Is > 501 desc = 0.1 Case Is < 0 MsgBox("Error: No se permiten cantidades y precios negativos",
MsgBoxStyle.Information, "Venta de Productos") End Select lbldescP.Text = (desc * 100).ToString + " %" lbldescS.Text = (Format(desc * Val(lblsubtotal.Text), "###
##0.##")).ToString lbltotal.Text = (Format(Val(lblsubtotal.Text) - Val(lbldescS.Text), "###
##0.##")).ToString btncalcular.Enabled = False btnnuevo.Enabled = True � Como se habrán dado cuenta, no hay mucho que explicar, la mayoría de este
capitulo, no hay mucha explicación por que si se han dado cuenta, casi el código no ha cambiado a comparación de la versión anterior. Bueno les voy a repetir que este manual es solo para aquellas personas que ya saben programar en visual Basic 6.0 y quieren saber que cosas nuevas nos trae esta versión, y si desean saber o estudiar todo de nuevo, no se preocupen que hay varias instituciones donde enseñan lenguaje de programación, jejejeje, mentira, solo que se esperarán un poco, por que a mediados de febrero del próximo año, ósea en el 2006, sacare no se como llamarle si libro o manual, pero en fin, va a ser para principiantes, intermedios y avanzados, en el Lenguaje de Programación basado en el Visual Basic 2005 Express Edition, por ahora lo estoy trabajando en la Versión Beta 2 en español que ha salido, espero que salga pronto la versión original, y espero que no cambie mucho, bueno sigamos con los ejemplo para que vean que no ha cambiado mucho, okis.
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
43434343
Aplicacion N° 12
En esta aplicación nos pide ingresar el nombre del alumno, su nota N° 1 y su nota N° 2, al hacer clic en el botón Obtener Promedio se debe visualizar: el promedio del alumno, una observación que indica si el alumno está aprobado o desaprobado, la nota cambiara de color, si esta aprobado se mostrara de color azul y en caso contrario de rojo, la cantidad de puntos que le faltan para aprobar, si esta desaprobado o los puntos para llegar a veinte en caso que esta aprobado. También se debe visualizar la Nota Cualitativa del alumno de acuerdo al promedio. Se debe de controlar que sólo se ingresan notas entre 0 y 20.
Entre 0 y 5 Pésimo
Entre 5.1 y 10.4 Malo Entre 10.5 y 14.4 Regular
Entre 14.5 y 17.4 Bueno Entre 17.5 y 20 Excelente
• Paso N° 01: Diseñar el Formulario. • Paso N° 02: Asignar los nombres a los controls.
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
44444444
Control Name
TextBox1 txtalumno TextBox2 txtcurso TextBox3 txtn1 TextBox4 txtn2
Label8 lblpromedio Label9 lblobservacion
Label10 lblpuntos Label12 lblcualidad Button1 btnotro
Button2 btnpromedio Button3 btnfinalizar
• Paso N° 03: El paso más fácil de este formulario, la codificación, así que hagan
todo su esfuerzo de copiar bien, ósea recuerden el cole, jejejeje. Función Limpiar Function Limpiar(ByVal condicion As Boolean) txtalumno.Text = "" txtcurso.Text = "" txtn1.Text = "" txtn2.Text = "" lblpromedio.Text = "" lblobservacion.Text = "" lblpuntos.Text = "" lblcualidad.Text = "" btnotro.Enabled = condicion btnpromedio.Enabled = Not condicion txtalumno.Focus() End Function btnfinalizar (Evento Click) If MsgBox("¿Deseas salir del programa?", MsgBoxStyle.Question.YesNo,
"Información Académica") = MsgBoxResult.Yes Then Me.Close() End If btnotro (Evento Click) Limpiar(False) frmaplicacion12 (Evento Load) Limpiar(False)
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
45454545
btnpromedio (Evento Click) If txtn1.Text = "" Or Val(txtn1.Text) < 0 Or Val(txtn1.Text) > 20 Or
IsNumeric(txtn1.Text) = False Then MsgBox("Tiene que ingresar solo números entre 0 y 20 en la primera nota",
MsgBoxStyle.Information, "Información Académica") txtn1.Text = "" txtn1.Focus() Exit Sub ElseIf txtn2.Text = "" Or Val(txtn2.Text) < 0 Or Val(txtn2.Text) > 20 Or
IsNumeric(txtn2.Text) = False Then MsgBox("Tiene que ingresar solo números entre 0 y 20 en la segunda
nota", MsgBoxStyle.Information, "Información Académica") txtn2.Text = "" txtn2.Focus() Exit Sub End If Dim promedio As Single promedio = (Val(txtn1.Text) + Val(txtn2.Text)) / 2 If promedio >= 0 And promedio < 10.5 Then lblpuntos.Text = "Le faltan " + (10.5 - promedio).ToString + " para se
aprobado(a)" lblpromedio.ForeColor = System.Drawing.Color.Red lblpromedio.Text = promedio.ToString lblobservacion.Text = "Desaprobado(a)" ElseIf promedio > 10.4 And promedio < 20.1 Then lblpuntos.Text = "Le faltan " + (20 - promedio).ToString + " para llegar a
20" lblpromedio.ForeColor = System.Drawing.Color.Blue lblpromedio.Text = promedio.ToString lblobservacion.Text = "Aprobado(a)" End If Select Case promedio Case 0 To 5 lblcualidad.Text = "Pésimo" Case 5.1 To 10.4 lblcualidad.Text = "Malo" Case 10.5 To 14.4 lblcualidad.Text = "Regular" Case 14.5 To 17.4 lblcualidad.Text = "Bueno" Case 17.5 To 20 lblcualidad.Text = "Excelente" End Select btnotro.Enabled = True btnpromedio.Enabled = False � Como se han dado cuenta antes poníamos, los números ya sean en RGB para
asignarle un color, ahora tendremos que invocar a la clase System y dentro de ella a la clase Draqing, y dentro de esta clase se encuentran todos los colores que deseas, bueno no todos, pero si los necesario.
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
46464646
Aplicación Propuesta N° 06 En esta aplicación se debe de ingresar el nombre y el año de nacimiento de una persona y se tiene que visualizar: su edad, una observación que indica si es mayor o menor de edad. Si es menor de edad se debe de mostrar cuantos años le faltan para ser mayor de edad y si es mayor de edad se debe de mostrar hace cuantos años es mayor de edad. También se debe de mostrar la etapa de la persona teniendo en cuenta lo siguiente:
0 y 12 Niño
13 y 17 Adolescente 18 y 30 Joven 31 y 70 Adulto
70 a mas Anciano
� Solo les voy a dar una recordación, existe dos funciones para saber la fecha
actual, una es la de Now(), que te devuelve la fecha actual, con días, meses, años, horas, minutos, y segundo, y existe otra función que te devuelve el años ingresado, es Year(), esta función te devuelve la fecha de una variable o de un argumento que se le envié, siempre y cuado sea una fecha, mejor dicho para obtener el año actual del sistema la codificación seria Year(Now()), bueno creo que mucha ayuda les he dado, así que suerte.
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
47474747
Aplicación N° 13 La siguiente aplicación es un ejemplo del uso de las funciones de cadena.
• Paso N° 01: Diseñar el formulario. • Paso N° 02: Asignar los nombres a los controles.
Control Name TextBox1 txtfrase Label10 lbllongitud Label11 lblprimer
Label12 lblultimo Label13 lblsegasexto
Label14 lblposA Label15 lblminusculas Label16 lblmayusculas Label17 lbltitulo Button1 btnmuestra Button2 btnnueva Button3 btnsalir
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
48484848
• Paso N° 03: Codificar, como siempre, lo bueno que con este ejemplo veremos o
mejor dicho recordaremos algunas funciones que de repente ya se han olvidado. Funcion Limpia (Evento Click) Function Limpiar(ByVal condicion As Boolean) txtfrase.Text = "" lbllongitud.Text = "" lblprimer.Text = "" lblultimo.Text = "" lblsegasexto.Text = "" lblposA.Text = "" lblminusculas.Text = "" lblmayusculas.Text = "" lbltitulo.Text = "" btnmuestra.Enabled = condicion btnnueva.Enabled = Not condicion txtfrase.Focus() End Function btnsalir (Evento Click) If MsgBox("¿Deseas salir de la aplicación?", MsgBoxStyle.Question.YesNo,
"Ejemplo de Cadenas") = MsgBoxResult.Yes Then Me.Close() btnnueva (Evento click) Limpiar(True) frmaplicacion13 (Evento Load) Limpiar(False) btnmuestra (Evento Click) lbllongitud.Text = (Len(Trim(txtfrase.Text))).ToString lblprimer.Text = Microsoft.VisualBasic.Left(Trim(txtfrase.Text), 1) lblultimo.Text = Microsoft.VisualBasic.Right(Trim(txtfrase.Text), 1) lblsegasexto.Text = Mid(Trim(txtfrase.Text), 2, 5) lblposA.Text = InStr(txtfrase.Text, "a") lblminusculas.Text = LCase(txtfrase.Text) lblmayusculas.Text = UCase(txtfrase.Text) lbltitulo.Text = StrConv(txtfrase.Text, VbStrConv.ProperCase) � Si se han dado cuenta he estado usando una función llamada StrConv para
convertir cadenas, esta función contiene varias parámetros como lo es VbStrConv.ProperCase, que convierte a la cadena en forma titulo, también encontraras para convertir en mayúsculas y minúsculas, es cosa que averigües.
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
49494949
Aplicación N° 14 Esta aplicación nos pide ingresar el nombre y la fecha de nacimiento de una persona y visualizarse por separado: el día, mes, año, número del día de la semana, la fecha en letras y la fecha y hora actual.
• Paso N° 01: Diseñar el formulario. • Paso N° 02: Asignarles los nombres respectivos a los controles
Control Name
TextBox1 txtnombre TextBox2 txtfecnac Label7 lbldiaing Label8 lblmesing
Label9 lblanioing Label10 lbldiasem
Label11 lblfecing Label12 lblfecact Button1 btnok Button2 btnsalir
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
50505050
• Paso N° 03: Crear el código, bueno usando mas o menos el código de visual
Basic 6.0. frmaplicacion14 (Evento Load) lblfecact.Text = "Hoy es " + (Now()).ToString btnalir (Evento Click) If MsgBox("¿Desea salir del programa?", MsgBoxStyle.Question.YesNo,
"Funciones Tipo fecha") = MsgBoxResult.Yes Then Me.Close() btnok (Evento click) Dim fecha As Date Dim nmes, diasemana As String Dim dia, mes, año, ndia As Integer If IsDate(txtfecnac.Text) = False Then MsgBox("Debe de ingresar un fecha válida, como se muestra en el ejemplo",
MsgBoxStyle.Information, "Funciones Tipo Fecha") txtfecnac.Text = "" txtfecnac.Focus() Exit Sub End If fecha = CDate(txtfecnac.Text) dia = Microsoft.VisualBasic.Day(fecha) mes = Microsoft.VisualBasic.Month(fecha) año = Year(fecha) ndia = Weekday(fecha) lbldiaing.Text = dia.ToString lblmesing.Text = mes.ToString lblanioing.Text = año.ToString Select Case ndia Case 1 : diasemana = "Domingo" Case 2 : diasemana = "Lunes" Case 3 : diasemana = "Martes" Case 4 : diasemana = "Miercoles" Case 5 : diasemana = "Jueves" Case 6 : diasemana = "Viernes" Case 7 : diasemana = "Sábado" End Select lbldiasem.Text = diasemana Select Case mes Case 1 : nmes = "Enero" Case 2 : nmes = "Febrero" Case 3 : nmes = "Marzo" Case 4 : nmes = "Abril" Case 5 : nmes = "Mayo" Case 6 : nmes = "Junio" Case 7 : nmes = "Julio" Case 8 : nmes = "Agosto" Case 9 : nmes = "Septiembre" Case 10 : nmes = "Octubre" Case 11 : nmes = "Noviembre" Case 12 : nmes = "Diciembre" End Select lblfecing.Text = diasemana + ", " + dia.ToString + " de " + nmes + " de " +
año.ToString
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
51515151
Aplicación N° 15 Esta aplicación es un ejemplo de la utilidad de las funciones tipo numéricas.
• Paso N° 01: Diseñar el formulario. • Paso N° 02: Asignar los nombres a cada control, respectivamente.
Control Name TextBox1 txtnum Label9 lblpartent Label10 lblpartdec
Label11 lblvalabs Label12 lblraizcuad
Label13 lblsigno Label14 lblvaloct Label15 lblvalhex
Button1 btnmuestra Button2 btnnueva Button3 btnsalir
• Paso N° 03: Crea o copiar el código, bueno si ya se sienten capaces de poder
resolver esta aplicación háganlo, para así saber que están aprendiendo.
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
52525252
Funcion Limpiar Function Limpiar() txtnum.Text = "" lblpartent.Text = "" lblpartdec.Text = "" lblvalabs.Text = "" lblraizcuad.Text = "" lblsigno.Text = "" lblvaloct.Text = "" lblvalhex.Text = "" txtnum.Focus() End Function btnnueva (Evento Click) Limpiar() frmaplicacion15 (Evento Click) Limpiar() btnsalir (Evento Click) If MsgBox("¿Desea salir de la aplicación?", MsgBoxStyle.Question.YesNo,
"Ejemplo de Funciones Numéricas") = MsgBoxResult.Yes Then Me.Close() btnmuestra (Evento Click) If IsNumeric(txtnum.Text) = False Then MsgBox("Debe de Ingresar un valor numérico", MsgBoxStyle.Information,
"Ejemplo de Funciones Numéricas") txtnum.Text = "" txtnum.Focus() Exit Sub End If Dim num As Double num = Val(txtnum.Text) lblpartent.Text = (Int(num)).ToString lblpartdec.Text = (Format(num - Val(lblpartent.Text), "0.#####")).ToString lblvalabs.Text = (Math.Abs(num)).ToString If num > 0 Then lblraizcuad.Text = (Format(Math.Sqrt(num), "###.#######")).ToString Else lblraizcuad.Text = "No Existe" End If If Math.Sign(num).ToString = "-1" Then lblsigno.Text = "Negativo" Else lblsigno.Text = "Positivo" End If lblvaloct.Text = (Oct(num)).ToString lblvalhex.Text = (Hex(num)).ToString
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
53535353
Aplicación N° 16 La siguiente aplicación permite ejecutar desde el Visual Basic algunos programas.
• Paso N° 01: Diseñar el formulario. • Paso N° 02: Asignar los nombres a los respectivos controles.
Control Name
Button1 btncalcelct Button2 btnword Button3 btnexcel Button4 btnexplorador
Button5 btndos Button6 btnfinalizar
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
54545454
• Paso N° 03: Hacer la pequeña codificación. btncalcelect (Evento Click) Shell("D:\Windows\System32\calc.exe", AppWinStyle.NormalFocus) btnword (Evento Click) Shell("D:\Archivos de programa\Microsoft Office\OFFICE11\winword.exe",
AppWinStyle.MaximizedFocus) btnexcel (Evento Click) Shell("D:\Archivos de programa\Microsoft Office\OFFICE11\excel.exe",
AppWinStyle.MaximizedFocus) btnexplorador (Evento Click) Shell("D:\WINDOWS\explorer.exe", AppWinStyle.MaximizedFocus) bndos (Evento Click) Shell("D:\WINDOWS\system32\cmd.exe", AppWinStyle.NormalFocus) Btnfinalizar (Evento Salir) If MsgBox("¿Deseas salir de la aplicación?", MsgBoxStyle.Question.YesNo,
"Uso de Shell") = MsgBoxResult.Yes Then Me.Close() � Como se habrán dado cuenta, lo único que cambio en esta función son los
paréntesis, que en la versión antigua no se ponía, nada mas, así que no hay casi nada de explicar, por que la forma de cómo presentar el programa que puede ser de la siguiente forma:
Oculto Maximizado y enfocado Minimizado y enfocado Minimizado y sin el foco Normal y con el foco Normal y sin el foco
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
55555555
Aplicación N° 17 Esta aplicación nos pide ingresar un texto y luego se debe de mostrar letra por letra del texto junto con su valor ASCII y su valor Binario; además, el valor binario se debe de desplazar de izquierda a derecha por el formulario.
• Paso N° 01: Diseñar el formulario. • Paso N° 02: Asignarles los nombres respectivos a los controles del formulario.
Control Name TextBox1 txttexto Label5 lblletra Label6 lblascii
Label7 lblbinario Label8 Label8
Button1 btnok
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
56565656
• Paso N° 03: Crear el código, bueno solo codificaremos en el funcion binario y en el botón Ok.
Función Binario Function Binario(ByVal num As Integer) Dim ValorBin As String Dim resto As Integer Do While num > 1 resto = num Mod 2 num = num / 2 ValorBin = Trim(Str(resto)) + Trim(ValorBin) Loop ValorBin = Trim(Str(num)) + ValorBin Binario = ValorBin End Function btnok (Evento Click) Dim Texto, Letra As String Dim x, Valor As Integer Dim t As Single Texto = Trim(txttexto.Text) Label8.Visible = True For x = 1 To Len(txttexto.Text) lblbinario.Text = "" Letra = Microsoft.VisualBasic.Mid(txttexto.Text, x, 1) lblletra.Text = Letra Valor = Asc(Letra) lblascii.Text = Valor.ToString lblbinario.Text = Binario(Valor) Label8.Text = lblbinario.Text For t = 1 To 5000 Step 0.1 Label8.Left = t Next Next
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
57575757
Aplicación N° 18 Esta Aplicación nos pide ingresar un número del 1 al 7 y se debe de visualizar el día de semana al cual pertenece el número ingresado, para esta ocasión vamos hacer usando array.
• Paso N° 01: Diseñar el Formulario. • Paso N° 02: Asignar los nombres respectivos a cada control.
Control Name
TextBox1 txtnum Label2 lbldia Button1 btnok Button2 btnsalir
• Paso N° 03: Codificar, para esto primero declararemos variables a nivel del
formulario (ósea mejor dicho, después de donde dice código generado por el diseñador de Windows Forms), y de ahí codificaremos en los diversos eventos de cada control.
Dim D(6) As String
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
58585858
frmaplicacion18 (Evento Load) D(0) = "Lunes" D(1) = "Martes" D(2) = "Miercoles" D(3) = "Jueves" D(4) = "Viernes" D(5) = "Sábado" D(6) = "Domingo" btnok (Evento Click) If txtnum.Text = "" Or Val(txtnum.Text) < 1 Or Val(txtnum.Text) > 7 Then MsgBox("Ingrese un número correcto del 1 al 7", MsgBoxStyle.Information,
"Ejemplo de Arreglos") txtnum.Text = "" txtnum.Focus() Exit Sub End If Dim N As Integer N = Val(txtnum.Text) - 1 lbldia.Text = "El número ingresado representa el día " + D(N) btnsalir (Evento Click) If MsgBox("¿Desea salir del programa?", MsgBoxStyle.Question.YesNo,
"Ejemplo de Arrays") = MsgBoxResult.Yes Then Me.Close() � A diferencia de la versión anterior en la declaración de arrays, es que en la
versión anterior uno podía definir de que numero a que numero podía contener su array, pero con esta nueva versión, es como en el C++, si le quieres indicar un número especifico de elementos que va a contener tu array, tienes que restarle menos uno, por que el primer index del array se contabiliza desde 0 por ejemplo: Hemos declarado un array llamado Dim D(6) As String, en la versión antigua te hubiera aceptado solo 6 elemento, por que este contabilizaba desde 1 a 6, en cambio con esta versión contabiliza desde el 0 al 6, que viene a ser 7 elementos.
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
59595959
Aplicación N° 19 Esta aplicación permite llenar los valores en un array de 16 elementos, escogidos aleatoriamente, entre el 1 al 50, luego se pueden ordenar en forma ascendente y restaurar los valores iniciales.
• Paso N° 01: Diseñar el formulario. • Paso N° 02: Asignar los nombres respectivos a cada control.
Control Name TextBox1 txtarray_0 TextBox2 txtarray_1 TextBox3 txtarray_2 TextBox4 txtarray_3 TextBox5 txtarray_4 TextBox6 txtarray_5
TextBox7 txtarray_6 TextBox8 txtarray_7
TextBox9 txtarray_8 TextBox10 txtarray_9 TextBox11 txtarray_10 TextBox12 txtarray_11 TextBox13 txtarray_12 TextBox14 txtarray_13 TextBox15 txtarray_14
TextBox16 txtarray_15 Button1 btnnuevo
Button2 btnordenar Button3 btnrestaurar Button4 btnllenar Button5 btnsalir
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
60606060
• Paso N° 03: Codificar, para estoy vamos a declarar arrays a nivel del formulario y a crear funciones.
Declaración de Arrays a nivel del formulario Dim ArrayText(15), ArrayTemp(15) As Integer Función Limpiar Function Limpiar(ByVal Condicion As Boolean) Dim x As Integer For x = 0 To 15 ArrayText(x) = 0 Next txtarray_0.Text = "" txtarray_1.Text = "" txtarray_2.Text = "" txtarray_3.Text = "" txtarray_4.Text = "" txtarray_5.Text = "" txtarray_6.Text = "" txtarray_7.Text = "" txtarray_8.Text = "" txtarray_9.Text = "" txtarray_10.Text = "" txtarray_11.Text = "" txtarray_12.Text = "" txtarray_13.Text = "" txtarray_14.Text = "" txtarray_15.Text = "" btnordenar.Enabled = Condicion txtarray_0.Focus() End Function Función Llenar Controles Function LlenarControles() txtarray_0.Text = ArrayText(0) txtarray_1.Text = ArrayText(1) txtarray_2.Text = ArrayText(2) txtarray_3.Text = ArrayText(3) txtarray_4.Text = ArrayText(4) txtarray_5.Text = ArrayText(5) txtarray_6.Text = ArrayText(6) txtarray_7.Text = ArrayText(7) txtarray_8.Text = ArrayText(8) txtarray_9.Text = ArrayText(9) txtarray_10.Text = ArrayText(10) txtarray_11.Text = ArrayText(11) txtarray_12.Text = ArrayText(12) txtarray_13.Text = ArrayText(13) txtarray_14.Text = ArrayText(14) txtarray_15.Text = ArrayText(15) End Function
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
61616161
btnordenar (Evento Click) Dim J, Index, Temp As Integer 'almacenamos el ArrayText en ArrayTemp para guardar los datos 'para después restaurarlo For J = 0 To 15 ArrayTemp(J) = ArrayText(J) Next 'Método de Ordenación llamada BURBUJA For J = 0 To 15 For Index = 0 To 15 If Index < 15 Then If ArrayText(Index) > ArrayText(Index + 1) Then Temp = ArrayText(Index) ArrayText(Index) = ArrayText(Index + 1) ArrayText(Index + 1) = Temp End If End If Next Next LlenarControles() btnrestaurar.Enabled = True btnrestaurar (Evento Click) Dim Index As Integer For Index = 0 To 15 ArrayText(Index) = ArrayTemp(Index) Next LlenarControles() btnllenar (Evento Click) Dim Index As Integer For Index = 0 To 15 ArrayText(Index) = Int((50 - 1 + 1) * Rnd() + 1) Next LlenarControles() btnordenar.Enabled = True btnrestaurar.Enabled = False btnnuevo (Evento Click) Limpiar(True) btnsalir (Evento Click) If MsgBox("¿Desea salir de al aplicación?", MsgBoxStyle.Question.YesNo,
"Cuidado") = MsgBoxResult.Yes Then Me.Close()
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
62626262
Aplicación N° 20
Esta aplicación permite manejar los elementos de un array de 16 elementos, estos elementos son valores numéricos de tipo entero con los cuales se realiza los siguientes procesos: Sumar filas, columnas, diagonales, etc. Bueno en realidad si ustedes desean lo pueden hacer con un array de 4 x 4, sino hagan como yo con un solo array de 16 elementos.
• Paso N° 01: Diseñar el formulario. • Paso N° 02: Asignar los nombres correspondientes a cada control.
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
63636363
Control Name TextBox1 txtarray_0 TextBox2 txtarray_1 TextBox3 txtarray_2
TextBox4 txtarray_3 TextBox5 txtarray_4 TextBox6 txtarray_5 TextBox7 txtarray_6 TextBox8 txtarray_7 TextBox9 txtarray_8 TextBox10 txtarray_9
TextBox11 txtarray_10 TextBox12 txtarray_11 TextBox13 txtarray_12 TextBox14 txtarray_13
TextBox15 txtarray_14 TextBox16 txtarray_15 Label1 lblresD1
Label2 lblresD2 Label3 lblresC1
Label4 lblresC2 Label5 lblresC3 Label6 lblresC4 Label7 lblresF1
Label8 lblresF2 Label9 lblresF3 Label10 lblresF4
Button1 btnLimpArray Button2 btnLimpRes
Button3 btnSumaC Button4 btnSumaF Button5 btnColum1 Button6 btnColum2
Button7 btnColum3 Button8 btnColum4 Button9 btnFila1
Button10 btnFila2 Button11 btnFila3
Button12 btnFila4 Button13 btnDiagonal1 Button14 btnDiagonal2 Button15 btnsalir
• Paso N° 03: Codificar, bueno como siempre, declaramos arrays a nivel del
formulario y crearemos funciones. Declaración de Arrays a nivel del formulario Dim ArrayControl(15), ArrayTemp(3, 3), ArraySuma(3), Suma(3) As Integer Dim Index, Temp, X, Y As Integer
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
64646464
Función Limpiar Array Function LimpiarArray() For Index = 0 To 15 ArrayControl(Index) = 0 Next For X = 0 To 3 For Y = 0 To 3 ArrayTemp(X, Y) = 0 Next Next txtarray_0.Text = "" txtarray_1.Text = "" txtarray_2.Text = "" txtarray_3.Text = "" txtarray_4.Text = "" txtarray_5.Text = "" txtarray_6.Text = "" txtarray_7.Text = "" txtarray_8.Text = "" txtarray_9.Text = "" txtarray_10.Text = "" txtarray_11.Text = "" txtarray_12.Text = "" txtarray_13.Text = "" txtarray_14.Text = "" txtarray_15.Text = "" txtarray_0.Focus() End Function Función Asiganar Array Function AsignarArray() ArrayControl(0) = Val(txtarray_0.Text) ArrayControl(1) = Val(txtarray_1.Text) ArrayControl(2) = Val(txtarray_2.Text) ArrayControl(3) = Val(txtarray_3.Text) ArrayControl(4) = Val(txtarray_4.Text) ArrayControl(5) = Val(txtarray_5.Text) ArrayControl(6) = Val(txtarray_6.Text) ArrayControl(7) = Val(txtarray_7.Text) ArrayControl(8) = Val(txtarray_8.Text) ArrayControl(9) = Val(txtarray_9.Text) ArrayControl(10) = Val(txtarray_10.Text) ArrayControl(11) = Val(txtarray_11.Text) ArrayControl(12) = Val(txtarray_12.Text) ArrayControl(13) = Val(txtarray_13.Text) ArrayControl(14) = Val(txtarray_14.Text) ArrayControl(15) = Val(txtarray_15.Text) Index = 0 For X = 0 To 3 For Y = 0 To 3 ArrayTemp(X, Y) = ArrayControl(Index) Index = Index + 1 Next Next End Function
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
65656565
Función Limpiar Resultados Function LimpiarResultados() lblresD1.Text = "" lblresD2.Text = "" lblresC1.Text = "" lblresC2.Text = "" lblresC3.Text = "" lblresC4.Text = "" lblresF1.Text = "" lblresF2.Text = "" lblresF3.Text = "" lblresF4.Text = "" End Function Función Limpiar Array Suma Function LimpiarArraySuma() For Index = 0 To 3 Suma(Index) = 0 Next End Function btnsalir (Evento Click) If MsgBox("¿Desea Salir de la Aplicación?", MsgBoxStyle.Question.YesNo,
"Cuidado") = MsgBoxResult.Yes Then Me.Close() btnLimpArray (Evento Click) LimpiarArray() btnLimpRes (Evento Click) LimpiarResultados() btnSumaC (Evento Click) AsignarArray() For X = 0 To 3 ArraySuma(X) = 0 For Y = 0 To 3 ArraySuma(X) = ArraySuma(X) + ArrayTemp(Y, X) Next Next For Index = 0 To 3 Suma(Index) = ArraySuma(Index) Next lblresC1.Text = Suma(0) lblresC2.Text = Suma(1) lblresC3.Text = Suma(2) lblresC4.Text = Suma(3)
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
66666666
btnSumaF (Evento Click) AsignarArray() For Y = 0 To 3 ArraySuma(Y) = 0 For X = 0 To 3 ArraySuma(Y) = ArraySuma(Y) + ArrayTemp(Y, X) Next Next For Index = 0 To 3 Suma(Index) = ArraySuma(Index) Next lblresF1.Text = Suma(0) lblresF2.Text = Suma(1) lblresF3.Text = Suma(2) lblresF4.Text = Suma(3) btnColum1 (Evento Click) AsignarArray() Temp = 0 For X = 0 To 3 Temp = Temp + ArrayTemp(X, 0) Next lblresC1.Text = Temp btnColum2 (Evento Click) AsignarArray() Temp = 0 For X = 0 To 3 Temp = Temp + ArrayTemp(X, 1) Next lblresC2.Text = Temp btnColum3 (Evento Click) AsignarArray() Temp = 0 For X = 0 To 3 Temp = Temp + ArrayTemp(X, 2) Next lblresC3.Text = Temp btnColum4 (Evento Click) AsignarArray() Temp = 0 For X = 0 To 3 Temp = Temp + ArrayTemp(X, 3) Next lblresC4.Text = Temp
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
67676767
btnFila1 (Evento Click) AsignarArray() Temp = 0 For Y = 0 To 3 Temp = Temp + ArrayTemp(0, Y) Next lblresF1.Text = Temp btnFila2 (Evento Click) AsignarArray() Temp = 0 For Y = 0 To 3 Temp = Temp + ArrayTemp(1, Y) Next lblresF2.Text = Temp btnFila3 (Evento Click) AsignarArray() Temp = 0 For Y = 0 To 3 Temp = Temp + ArrayTemp(2, Y) Next lblresF3.Text = Temp btnFila4 (Evento Click) AsignarArray() Temp = 0 For Y = 0 To 3 Temp = Temp + ArrayTemp(3, Y) Next lblresF4.Text = Temp btnDiagonal1 (Evento Click) AsignarArray() Temp = 0 For Index = 0 To 3 Temp = Temp + ArrayTemp(Index, 3 - Index) Next lblresD1.Text = Temp btnDiagonal2 (Evento Click) AsignarArray() Temp = 0 For Index = 0 To 3 Temp = Temp + ArrayTemp(Index, Index) Next lblresD2.Text = Temp
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
68686868
Aplicación N° 21
La siguiente aplicación permite realizar operaciones con arrays como sumar dos arrays, restar, multiplicar, etc.
• Paso N° 01: Diseñar el formulario. • Paso N° 02: Asignar los nombres respectivos a los controles.
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
69696969
Control Name
TextBox1 txta_0 TextBox2 txta_1 TextBox3 txta_2 TextBox4 txta_3
TextBox5 txta_4 TextBox6 txta_5
TextBox7 txta_6 TextBox8 txta_7 TextBox9 txta_8
TextBox10 txtb_0 TextBox11 txtb_1 TextBox12 txtb_2 TextBox13 txtb_3
TextBox14 txtb_4 TextBox15 txtb_5
TextBox16 txtb_6 TextBox16 txtb_7 TextBox16 txtb_8
Label1 lblres_0 Label2 lblres_1 Label3 lblres_2 Label4 lblres_3
Label5 lblres_4 Label6 lblres_5
Label7 lblres_6 Label8 lblres_7 Label9 lblres_8
Button1 btnborrar Button2 btnLlenar Button3 btnsalir Button4 btnsuma
Button5 btnresta Button6 btnmultiplica Button7 btndivide Button8 btnecuacion
• Paso N° 03: Codificar, primero declarar los arrays a nivel del formulario y
después seguimos con las funciones okis. Dim ArrayA(8), ArrayB(8) As Integer Dim ArrayResp(8) As String Dim Index As Integer
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
70707070
Función Asignar Control A Function AsignarControlA() txta_0.Text = ArrayA(0) txta_1.Text = ArrayA(1) txta_2.Text = ArrayA(2) txta_3.Text = ArrayA(3) txta_4.Text = ArrayA(4) txta_5.Text = ArrayA(5) txta_6.Text = ArrayA(6) txta_7.Text = ArrayA(7) txta_8.Text = ArrayA(8) End Function Función Asignar Control B Function AsignarControlB() txtb_0.Text = ArrayB(0) txtb_1.Text = ArrayB(1) txtb_2.Text = ArrayB(2) txtb_3.Text = ArrayB(3) txtb_4.Text = ArrayB(4) txtb_5.Text = ArrayB(5) txtb_6.Text = ArrayB(6) txtb_7.Text = ArrayB(7) txtb_8.Text = ArrayB(8) End Function Función Llenar Resultado Function LlenarResultado() lblres_0.Text = ArrayResp(0) lblres_1.Text = ArrayResp(1) lblres_2.Text = ArrayResp(2) lblres_3.Text = ArrayResp(3) lblres_4.Text = ArrayResp(4) lblres_5.Text = ArrayResp(5) lblres_6.Text = ArrayResp(6) lblres_7.Text = ArrayResp(7) lblres_8.Text = ArrayResp(8) End Function Función Limpiar Arrays Function LimpiarArrays() For Index = 0 To 8 ArrayA(Index) = 0 ArrayB(Index) = 0 ArrayResp(Index) = 0 Next End Function
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
71717171
Función Limpiar Controles Function LimpiarControles() txta_0.Text = "" txta_1.Text = "" txta_2.Text = "" txta_3.Text = "" txta_4.Text = "" txta_5.Text = "" txta_6.Text = "" txta_7.Text = "" txta_8.Text = "" txtb_0.Text = "" txtb_1.Text = "" txtb_2.Text = "" txtb_3.Text = "" txtb_4.Text = "" txtb_5.Text = "" txtb_6.Text = "" txtb_7.Text = "" txtb_8.Text = "" lblres_0.Text = "" lblres_1.Text = "" lblres_2.Text = "" lblres_3.Text = "" lblres_4.Text = "" lblres_5.Text = "" lblres_6.Text = "" lblres_7.Text = "" lblres_8.Text = "" End Function btnsalir (Evento Click) If MsgBox("¿Desea salir de la aplicación?", MsgBoxStyle.Question.YesNo,
"Cuidado") = MsgBoxResult.Yes Then Me.Close() btnllenar (Evento click) Randomize() For Index = 0 To 8 ArrayA(Index) = Int((10 - (-5) + 1) * Rnd() + (-5)) ArrayB(Index) = Int((10 - (-5) + 1) * Rnd() + (-5)) Next AsignarControlA() AsignarControlB()
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
72727272
btnsuma (Evento Click) For Index = 0 To 8 ArrayResp(Index) = ArrayA(Index) + ArrayB(Index) Next LlenarResultado() btnresta (Evento Click) For Index = 0 To 8 ArrayResp(Index) = ArrayA(Index) - ArrayB(Index) Next LlenarResultado() btnmultiplica (Evento Click) For Index = 0 To 8 ArrayResp(Index) = ArrayA(Index) * ArrayB(Index) Next LlenarResultado() btndivide (Evento Click) For Index = 0 To 8 If ArrayB(Index) <> 0 Then ArrayResp(Index) = Format(ArrayA(Index) / ArrayB(Index), "###
##0.##") Else ArrayResp(Index) = "NE" End If Next LlenarResultado() btnecuacion (Evento Click) For Index = 0 To 8 ArrayResp(Index) = (ArrayA(Index) * 2) + (ArrayB(Index) * 3) Next LlenarResultado() frmaplicacion21 (Evento Load) LimpiarControles() btnborrar (Evento Click) LimpiarControles() LimpiarArrays()
Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003Visual Basic .Net 2003
Joel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco MarrufoJoel Martin Chuco Marrufo
73737373
� Bueno señores, con esto acabo con la primera entrega, que es lo básico, bueno antes de despedirme, les diré una cosa, como ustedes saben, esto de arrays, es algo fácil y mucho mas fácil en la versión 6.0, ya que se puede crear un array con los controles de texto, bueno en esta versión si se puede también crear array de controles, pero con la diferencia que tendríamos que hacer una clase que cree un array de controles, bueno es algo confuso, por eso decidí hacerlo con arrays normales.
Bueno ahora si me despido, deseándoles unas Felices Fiestas, y la próxima
entrega ya lo haré el próximo año, en donde veremos como personalizar la entrada de datos, crear un menú, formularios MDI y entre otras cosas, mientras tanto voy a estar preparando la primera entrega sobre el Visual Basic 2005, ya saben que cualquier pregunta o duda me escriben a mi correo [email protected] que les responderé lo mas rápido posible, así que hasta el próximo año, byes y no tomen mucho Donaciones a la Cuenta de Ahorros del Banco Interbank del Perú � Cuenta en Soles:
067-3008573552 � Cuenta en Dólares:
067-3008573560 www.interbank.com.pe
Lima, 14 de Diciembre de 2005