manualvb.net

73
Visual Basic .Net 2003 Visual Basic .Net 2003 Visual Basic .Net 2003 Visual Basic .Net 2003 Joel Martin Chuco Marrufo Joel Martin Chuco Marrufo Joel Martin Chuco Marrufo Joel Martin Chuco Marrufo 1 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 Marrufo Joel Martin Chuco Marrufo Joel Martin Chuco Marrufo Joel Martin Chuco Marrufo

Upload: cesaga0075102

Post on 30-Jun-2015

2.354 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: ManualVB.net

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

Page 2: ManualVB.net

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

Page 3: ManualVB.net

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.

Page 4: ManualVB.net

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.

Page 5: ManualVB.net

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.

Page 6: ManualVB.net

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

Page 7: ManualVB.net

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.

Page 8: ManualVB.net

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

Page 9: ManualVB.net

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

Page 10: ManualVB.net

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.

Page 11: ManualVB.net

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

Page 12: ManualVB.net

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.

Page 13: ManualVB.net

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

Page 14: ManualVB.net

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 *

Page 15: ManualVB.net

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

Page 16: ManualVB.net

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.

Page 17: ManualVB.net

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!

Page 18: ManualVB.net

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

Page 19: ManualVB.net

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.

Page 20: ManualVB.net

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

Page 21: ManualVB.net

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

Page 22: ManualVB.net

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.

Page 23: ManualVB.net

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

Page 24: ManualVB.net

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.

Page 25: ManualVB.net

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

Page 26: ManualVB.net

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

Page 27: ManualVB.net

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

Page 28: ManualVB.net

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

Page 29: ManualVB.net

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

Page 30: ManualVB.net

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

Page 31: ManualVB.net

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

Page 32: ManualVB.net

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

Page 33: ManualVB.net

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

Page 34: ManualVB.net

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

Page 35: ManualVB.net

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

Page 36: ManualVB.net

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)

Page 37: ManualVB.net

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.

Page 38: ManualVB.net

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

Page 39: ManualVB.net

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.

Page 40: ManualVB.net

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

Page 41: ManualVB.net

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

Page 42: ManualVB.net

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.

Page 43: ManualVB.net

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.

Page 44: ManualVB.net

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)

Page 45: ManualVB.net

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.

Page 46: ManualVB.net

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.

Page 47: ManualVB.net

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

Page 48: ManualVB.net

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.

Page 49: ManualVB.net

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

Page 50: ManualVB.net

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

Page 51: ManualVB.net

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.

Page 52: ManualVB.net

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

Page 53: ManualVB.net

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

Page 54: ManualVB.net

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

Page 55: ManualVB.net

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

Page 56: ManualVB.net

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

Page 57: ManualVB.net

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

Page 58: ManualVB.net

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.

Page 59: ManualVB.net

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

Page 60: ManualVB.net

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

Page 61: ManualVB.net

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()

Page 62: ManualVB.net

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.

Page 63: ManualVB.net

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

Page 64: ManualVB.net

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

Page 65: ManualVB.net

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)

Page 66: ManualVB.net

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

Page 67: ManualVB.net

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

Page 68: ManualVB.net

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.

Page 69: ManualVB.net

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

Page 70: ManualVB.net

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

Page 71: ManualVB.net

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()

Page 72: ManualVB.net

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()

Page 73: ManualVB.net

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