You are on page 1of 73

Visual Basic .

Net 2003

Migrando a la Nueva Programación…

Joel Martin Chuco Marrufo

Joel Martin Chuco Marrufo


1
Visual Basic .Net 2003

Entorno De Visual Basic .Net 2003

Joel Martin Chuco Marrufo


2
Visual Basic .Net 2003

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.

Joel Martin Chuco Marrufo


3
Visual Basic .Net 2003

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.

Joel Martin Chuco Marrufo


4
Visual Basic .Net 2003

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.

Joel Martin Chuco Marrufo


5
Visual Basic .Net 2003

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

Caja de Herramientas
Formulario Ventana de Propiedades
Explorador de Servidores

Joel Martin Chuco Marrufo


6
Visual Basic .Net 2003

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 jmchm19@hotmail.com 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.

Joel Martin Chuco Marrufo


7
Visual Basic .Net 2003

Controles Básicos

Joel Martin Chuco Marrufo


8
Visual Basic .Net 2003

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

Microsoft Sans Serif,


Label1 True None TopLeft
28
Microsoft Sans Serif
Label2 False Fixed 3D MiddleCenter
13
Microsoft Sans Serif,
Label3 Trae None TopRight
Subrayado, 10

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 Superior, pero centrado a los costados Centrado al medio, a los cuatros lados

Lado Izquierdo Superior


Lado Derecho Superior

Lado Derecho, pero


Lado Izquierdo, pero centrado arriba y
centrado arriba y abajo
abajo

Lado Derecho Inferior


Lado Izquierdo Inferior
Lado Inferior, pero centrado a los costados

Joel Martin Chuco Marrufo


9
Visual Basic .Net 2003

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.

Joel Martin Chuco Marrufo


10
Visual Basic .Net 2003

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

Microsoft Sans Serif,


Label1 True Fixed 3D MiddleCenter
Negrita, 12
Microsoft Sans Serif
Label2 False None TopLeft
8
Microsoft Sans Serif,
Label3 True None TopLeft
8
Microsoft Sans Serif,
Label4 True None TopLeft
8
Microsoft Sans Serif,
Label5 True None TopLeft
8
Microsoft Sans Serif,
Label6 True None MiddleCenter
Negrita, 8

Joel Martin Chuco Marrufo


11
Visual Basic .Net 2003

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.

Joel Martin Chuco Marrufo


12
Visual Basic .Net 2003

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

Microsoft Sans Serif,


Label1 True None TopLeft
8
Microsoft Sans Serif
Label2 True None TopLeft
8
Microsoft Sans Serif,
Label3 Trae None TopLeft
8
Microsoft Sans Serif,
Label4 True None TopLeft
8
Microsoft Sans Serif,
Label5 True None TopLeft
8
Microsoft Sans Serif,
Label6 False Fixed 3D MiddleCenter
Cursiva, 8

Joel Martin Chuco Marrufo


13
Visual Basic .Net 2003

Control Text

Label1 Nombre
Label2 Ciclo (del I al X)
Label3 Sexo (F/M)
Label4 Clave
Label5 Dirección Electrónica
La dirección electrónica es asignada después de ingresar todos los
Label6
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 *

Joel Martin Chuco Marrufo


14
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


15
Visual Basic .Net 2003

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.

Joel Martin Chuco Marrufo


16
Visual Basic .Net 2003

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!

Joel Martin Chuco Marrufo


17
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


18
Visual Basic .Net 2003

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.

Joel Martin Chuco Marrufo


19
Visual Basic .Net 2003

Joel Martin Chuco Marrufo


20
Visual Basic .Net 2003

Elementos de Programación,
Programando de Verdad

Joel Martin Chuco Marrufo


21
Visual Basic .Net 2003

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.

Joel Martin Chuco Marrufo


22
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


23
Visual Basic .Net 2003

• 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.

Joel Martin Chuco Marrufo


24
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


25
Visual Basic .Net 2003

• 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?", MsgBoxStyle.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

Joel Martin Chuco Marrufo


26
Visual Basic .Net 2003

 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

Joel Martin Chuco Marrufo


27
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


28
Visual Basic .Net 2003

• 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
Función Minúsculas
Function Limpiar()
txtapenom.Text = "" Function Minuscula(ByVal v)
txtfecing.Text = "" If (v >= 97 And v <= 122) Then
txtturno.Text = "" Minuscula = True
txtpromedio.Text = "" Else
btnnuevo.Enabled = False Minuscula = False
btnsalir.Enabled = False End If
txtapenom.Focus() End Function
End Function

Función Número
Función Mayúsculas
Function Numero(ByVal v)
Function Mayuscula(ByVal v) If (v < 48 Or v > 57) Then
If (v >= 65 And v <= 90) Then Numero = False
Mayuscula = True Else
Else Numero = True
Mayuscula = False End If
End If End Function
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

Joel Martin Chuco Marrufo


29
Visual Basic .Net 2003

• 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

Joel Martin Chuco Marrufo


30
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


31
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


32
Visual Basic .Net 2003

 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

Joel Martin Chuco Marrufo


33
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


34
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


35
Visual Basic .Net 2003

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)

Joel Martin Chuco Marrufo


36
Visual Basic .Net 2003

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.

Joel Martin Chuco Marrufo


37
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


38
Visual Basic .Net 2003

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.

Joel Martin Chuco Marrufo


39
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


40
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


41
Visual Basic .Net 2003

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.

Joel Martin Chuco Marrufo


42
Visual Basic .Net 2003

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 0y5 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.

Joel Martin Chuco Marrufo


43
Visual Basic .Net 2003

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)

Joel Martin Chuco Marrufo


44
Visual Basic .Net 2003

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.

Joel Martin Chuco Marrufo


45
Visual Basic .Net 2003

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.

Joel Martin Chuco Marrufo


46
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


47
Visual Basic .Net 2003

• 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.

Joel Martin Chuco Marrufo


48
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


49
Visual Basic .Net 2003

• 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

Joel Martin Chuco Marrufo


50
Visual Basic .Net 2003

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.

Joel Martin Chuco Marrufo


51
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


52
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


53
Visual Basic .Net 2003

• 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

Joel Martin Chuco Marrufo


54
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


55
Visual Basic .Net 2003

• 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

Joel Martin Chuco Marrufo


56
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


57
Visual Basic .Net 2003

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.

Joel Martin Chuco Marrufo


58
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


59
Visual Basic .Net 2003

• 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

Joel Martin Chuco Marrufo


60
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


61
Visual Basic .Net 2003

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.

Joel Martin Chuco Marrufo


62
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


63
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


64
Visual Basic .Net 2003

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)

Joel Martin Chuco Marrufo


65
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


66
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


67
Visual Basic .Net 2003

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.

Joel Martin Chuco Marrufo


68
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


69
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


70
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


71
Visual Basic .Net 2003

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

Joel Martin Chuco Marrufo


72
Visual Basic .Net 2003

 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 jmchm19@hotmail.com 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

Joel Martin Chuco Marrufo


73