Está en la página 1de 73

Visual Basic .

Net 2003

Migrando a la Nueva Programacin

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 diseado para crear programas ya sea
tan sencillos como los que vamos a ver y tan difciles (aunque es solo una
expresin) 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 comparacin 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, tambin podr abrir cualquier solucin de visual Studio .Net o crear una
nueva.

Joel Martin Chuco Marrufo


4

Visual Basic .Net 2003


Para abrir una solucin (proyecto), deber darle clic en el botn de abrir
proyecto y le aparecer el explorador, no se preocupe, que el visual Studio .Net
automticamente seleccionara el archivo a abrir.

Ahora, lo que mas nos interesa, crear un nuevo proyecto, al dar clic en el
botn 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 recin quiere aprender a
programar le recomendara 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 habrn dado cuenta, siempre se inicia en el visual Basic, y aparece
seleccionado la opcin Aplicacin para Windows, justamente lo que ms vamos
a utilizar, para programar.
En donde dice nombre, va a ir el nombre de nuestro proyecto, y en donde
dice ubicacin 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
pequeos programas por no decir todos lo programas hechos en visual Basic 6.0
del libro de Juan Jos Castaeda Len, que para mi criterio es uno de los mejores
autores de libros de programacin, que hay en el Per.

Explorador del Proyecto

Caja de Herramientas
Formulario
Explorador de Servidores

Joel Martin Chuco Marrufo


6

Ventana de Propiedades

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 versin el Linklabel que
esta orienta a conexin a Internet, y adems te dars cuenta que en la creacin de
un nuevo objeto, como lo es el de mens, esta aparece en la parte inferior como si
fuera un control, para hacernos mas fcil la edicin de este control, bueno
conforme avancemos en la programacin les ir explicando los nuevos mtodos o
propiedades de los controles, antes que se aburran, vayamos a crear nuestra
primera aplicacin, porque si son como yo, no me gusta mucho la palabrera,
porque me gusta mas la accin 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 botn se activa al presionar la tecla Enter
en el formulario, mejor dicho ejecuta el cdigo del botn mayormente llamado
Aceptar
CancelButton.- Aqu establecemos que botn se activa al presionar la tecla Esc en
el formulario, mejor dicho ejecuta el cdigo del botn Cancelar.
HelpButton.- Este botn Help (Ayuda), solo aparece cuando estn 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 Bsicos

Joel Martin Chuco Marrufo


8

Visual Basic .Net 2003

Aplicacin N 01
Esta aplicacin es fcil de hacer, pero la cosa es divertirse y aprender okis,
el formulario que vas a crear deber tener el siguiente diseo. El Proyecto se
Llamara Aplicacion01 y el Formulario se llamar frmaplicacion01.

Como tu mismo ves va a tener los siguientes controles:

Control

AutoSize

BorderStyle

Label1

True

None

Label2

False

Fixed 3D

Label3

Trae

None

Control
Label1
Label2
Label3

Font
Microsoft Sans Serif,
28
Microsoft Sans Serif
13
Microsoft Sans Serif,
Subrayado, 10

TextAlign
TopLeft
MiddleCenter
TopRight

Text
Visual Basic .Net
Migrando a la Nueva Programacin
Mi nombre es Joel Martin Chuco Marrufo

Si te habrs 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 comparacin de la versin 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
centrado arriba y
abajo

Lado Izquierdo, pero


centrado
arriba
y
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 pequea explicacin sigamos con la aplicacin, para poder
ejecutar la aplicacin puedes presionar la tecla F5 o ir a la barra de men y
despus a Depurar -> Iniciar, y por fin veraz tu primera aplicacin hecha en Visual
Basic .Net.
Nota: Si te sale un error al querer ejecutar tu aplicacin 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

Despus 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

Aplicacin N 02
Bueno seguiremos con las aplicaciones del Libro de Juan Jos Castaeda
Len (Visual Basic 6.0), todava no vamos a tocar lo que es cdigo, primero
tendremos que aprender lo que nos trae de nuevo esta nueva versin del visual
para el diseo de nuestros formularios. Siguiendo con los diseos, esta aplicacin
disearemos un nuevo formulario, como les digo solo disearemos okis.
Para esta aplicacin crearemos un nuevo proyecto llamado Aplicacion02 y el
formulario llamado frmaplicacion02, que tendr el siguiente diseo.

A comparacin de la versin anterior de visual Basic, antes podamos


agrandar la caja de texto sin ser necesario modificar la propiedad multiline a true,
bueno ahora con esta nueva versin nos obliga a cambiar la propiedad multiline a
true para poder recin modificar el tamao.

Control

AutoSize

BorderStyle

Label1

True

Fixed 3D

Label2

False

None

Label3

True

None

Label4

True

None

Label5

True

None

Label6

True

None

Font
Microsoft Sans
Negrita, 12
Microsoft Sans
8
Microsoft Sans
8
Microsoft Sans
8
Microsoft Sans
8
Microsoft Sans
Negrita, 8

Joel Martin Chuco Marrufo


11

TextAlign
Serif,
Serif
Serif,
Serif,
Serif,
Serif,

MiddleCenter
TopLeft
TopLeft
TopLeft
TopLeft
MiddleCenter

Visual Basic .Net 2003

Control
Label1
Label2
Label3
Label4
Label5
Label6

Datos Personales
Nombre
Direccin
Telfono
Centro de Estudios
Observaciones

Control
TextBox1
TextBox2
TextBox3
TextBox4
TextBox5

Text

Text
En
En
En
En
En

Blanco
Blanco
Blanco
Blanco
Blanco

Multiline
False
False
False
False
True

ScrollBars
None
None
None
None
Vertical

Aplicacin Propuesta N 01

Esta aplicacin lo harn sin mi ayuda (Que fcil no?), no se preocupen es


solo puro diseo aqu les dejo la interfaz okis.

Joel Martin Chuco Marrufo


12

Visual Basic .Net 2003

Aplicacin N 03

Esta aplicacin todava es solo diseo, as que crearemos un nuevo proyecto


llamado Aplicacion03 y un formulario llamado frmaplicacion03, que tendr la
siguiente interfaz.

Caractersticas:
1.2.3.4.-

En el ciclo debe ingresar hasta 03 caracteres.


En el sexo slo un carcter.
En la clave hasta 05 caracteres y no se debe visualizar a medida que ingresa.
No se debe permitir el ingreso de la direccin electrnica.

Control

AutoSize

BorderStyle

Label1

True

None

Label2

True

None

Label3

Trae

None

Label4

True

None

Label5

True

None

Label6

False

Fixed 3D

Font
Microsoft Sans
8
Microsoft Sans
8
Microsoft Sans
8
Microsoft Sans
8
Microsoft Sans
8
Microsoft Sans
Cursiva, 8

Joel Martin Chuco Marrufo


13

TextAlign
Serif,
Serif
Serif,
Serif,
Serif,
Serif,

TopLeft
TopLeft
TopLeft
TopLeft
TopLeft
MiddleCenter

Visual Basic .Net 2003

Control
Label1
Label2
Label3
Label4
Label5
Label6

Text
Nombre
Ciclo (del I al X)
Sexo (F/M)
Clave
Direccin Electrnica
La direccin electrnica es asignada despus de ingresar todos los
registros, por lo tanto, Ud. no podr ingresarla.

Control
TextBox1
TextBox2
TextBox3
TextBox4
TextBox5

Text
En
En
En
En
En

Blanco
Blanco
Blanco
Blanco
Blanco

ReadOnly
False
False
False
False
True

MaxLength

PasswordChar

3
1
5

Joel Martin Chuco Marrufo


14

Visual Basic .Net 2003

Aplicacin N 04
Bueno dirn ustedes, Cuando vamos a comenzar a codificar?, bueno la
respuesta es que en est aplicacin 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
diseo, si se han dado cuenta el diseo se parece al de la aplicacin 02, as que
pueden hacerlo en la misma ventana de la aplicacin 02, si les da flojera disear
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 botn finalizar, para que a la hora de
presionar la tecla Esc, este ejecute el cdigo de este botn okis.

Control
Button1
Button2
TextBox1
TextBox2
TextBox3
TextBox4
TextBox5

Name
btnnuevo
btnfinalizar
Txtnombre
Txtdireccion
Txttelefono
Txtce
txtobservaciones

Joel Martin Chuco Marrufo


15

Visual Basic .Net 2003

Ahora codificaremos el botn nuevo, para entrar a la ventana de diseo de


cdigo le daremos doble clic en el botn nuevo y aparecer el siguiente cdigo
Private Sub btnnuevo_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnnuevo.Click
End Sub
Y a continuacin codificaremos lo siguiente:
txtnombre.Text = ""
txtdireccion.Text = ""
txttelefono.Text = ""
txtce.Text = ""
txtobservaciones.Text = ""
txtnombre.Focus()
y quedara algo asi:

Y en el botn finalizar, codificaremos lo siguiente:


Me.Close()
Y visualizaras algo as:

Bueno ahora viene lo mas interesante, que es la explicacin, comencemos,


por el cdigo de Focus(), este mtodo tiene la misma funcin que hacia el cdigo de
la versin 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 cdigo de Me.Close(), este cdigo hace lo mismo que hacia los
cdigos de la versin anterior que era el de End o el de Unload Me (Aunque estos
dos cdigos aun lo acepta la nueva versin), que es la de cerrar la aplicacin y de
liberar la memoria, para que el espacio que ocupe esta aplicacin en la memoria,
pueda ser utilizada por otra aplicacin.

Aplicacin Propuesta N 02
Bueno ahora que seguro que ya tienen ganas de programar, al saber que
casi no ha cambiado el cdigo a comparacin de la versin anterior les dejare un
aplicacin para que ustedes de luzcan poniendo todo su conocimiento en ello, solo
les dejo la interfaz y lo que pide esta aplicacin.

Caractersticas

1. Al dar clic en el botn 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 botn Centro de Estudios, me deber Mostar el nombre del
centro de estudios de usted.
3. Al dar clic en el botn Fecha de Nacimiento, me deber Mostar la fecha de
nacimiento de usted.
4. Al dar clic en el botn Salir, este terminara la aplicacin.
5. Al dar clic en cada botn, este dar el foco al siguiente botn.
6. Y por ultimo al presionar la tecla Esc, este cerrara la aplicacin.

Eso es todo, no les pido nada mas, as que suerte!

Joel Martin Chuco Marrufo


17

Visual Basic .Net 2003

Aplicacin N 05
Esta aplicacin se parece bastante a la aplicacin anterior, as que para
desarrollar esta aplicacin crearemos un nuevo proyecto llamado Aplicacion05 y un
formulario llamado frmaplicacion05, que tendr la siguiente interfaz.

Las caractersticas de los controles del formulario son las siguientes:

Control

Text

Label1
Label2
Label3
Label4

Nombre
Fecha de Nacimiento
DNI
Domicilio Actual

Control

Name

TextBox1
TextBox2
TextBox3
TextBox4
Button1
Button2

Txtnombre
Txtfecnac
Txtdni
Txtdomact
Btnnuevo
Btnsalir

Text
En Blanco
En Blanco
En Blanco
En Blanco
&Nuevo
&Salir

Joel Martin Chuco Marrufo


18

Visual Basic .Net 2003


El cdigo 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 aplicacin concluimos este segundo capitulo, as que ahora


tocaremos un poco mas de programacin 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 Programacin,
Programando de Verdad

Joel Martin Chuco Marrufo


21

Visual Basic .Net 2003


Aplicacin N 06

Esta aplicacin 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 habrn dado
cuenta, yo acostumbro a ponerle un nombre especifico a cada control que voy a
utilizar, y en esta aplicacin no puede ser la excepcin, los siguientes nombres
que vana tener los controles son:
Control
Label3
Label4
Button1

Name
lbla
lblb
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 botn 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
comparacin de la variable b, que esta almacena su valor asignado, hasta que
la aplicacin 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


Aplicacin N 07
Les dir ahora lo que nos pide esta aplicacin, 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 botn 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: Disear el formulario, preferira que lo hicieran lo mejor posible.


Paso N 02: Asignarles los nombres especficos para cada control.

Control
TextBox1
TextBox2
TextBox3
TextBox4
TextBox5
Label11
Label12
Label13
Label14
Label15
Button1
Button2
Button3

Name
txtnom
txthtn
txthe
txtpxhn
txtpxhe
lbltxhn
lbltxhe
lblsubtotal
lbldescuento
lbltp
btnnuevo
btnsalir
btncalcular

Joel Martin Chuco Marrufo


23

Visual Basic .Net 2003

Paso N 03: Uno de los pasos ms difciles, 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 pequeos cambios que ha tenido el Visual Basic en su
codificacin, ya sea con el Setfocus, que ahora es Focus, el Unload Me o End por
el Me.Close(), bueno ahora con la siguiente aplicacin veremos otro pequeo
cambio que tiene el visual Basic en una funcin bastante usada que es el
KeyAscci, asi que vayamos con la siguiente aplicacin.

Joel Martin Chuco Marrufo


24

Visual Basic .Net 2003

Aplicacin N 08
Ahora con esta aplicacin que se parece mucho a la aplicacin 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 botn Finalizar, nos salga un mensaje de advertencia, as que
comencemos.

Paso N 01: Disear el formulario.


Paso N 02: Asignar los nombres a los controles.

Control
TextBox1
TextBox2
TextBox3
TextBox4
TextBox5
Button1
Button2

Name
txtnombre
txtdireccion
txttelefono
txtce
txtobservaciones
btnnuevo
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 Lnea la comparacin okis.


If MsgBox("Desea Salir de la Aplicacin?", MsgBoxStyle.Question.YesNo,
"Aplicacin 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 cdigo,
as que ser ms fcil, comencemos.
Primero comencemos con ver el cdigo que seria en visual Basic 6.0
If keyascci = 13 Then
Text2.SetFocus
End If
Como sabemos, el valor en el cdigo ASCII de la pulsacin de la tecla ENTER
es 13, bueno, antes nos bastaba escribir ese cdigo en el evento KeyPress, ahora
tenemos que escribir este cdigo en el visual Basic.Net 2003.
If Asc(e.KeyChar) = 13 Then
TextBox2.Focus()
End If
Comencemos con la explicacin, si se dan cuenta que en el procedimiento
del TextBox hay dos argumentos que se pasa, que es el Sender y el e, a
comparacin de la versin anterior que solo era el Keyascii, bueno les dir que en
el argumento e se encuentran todos los eventos, procedimientos y funciones que
estn en ejecucin, como lo es el KeyChar, que es una funcin que nos devuelve
el carcter que ha sido digitado, este carcter es de variable string, es por ello que
usamos la funcin Asc, que convierte en cdigo ASCII a cualquier carcter que le
enviemos a esta funcin, bueno espero que hayan entendido, sino, les dir algo
resumido lo que significa el cdigo okis. Si la funcin Asc nos devuelve 13 en
cdigo 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 aconsejara leer el manual para
principiantes que despus lo voy a publicar, as que para no hacerla larga les voy a
dejar una pequea aplicacin, que se parece mucha a esta, as que resulvanlo
solos, y hganlo lo mejor posible okis.

Aplicacin Propuesta N 03

Joel Martin Chuco Marrufo


27

Visual Basic .Net 2003

Alicacin N 09
El siguiente programa permite ingresar los apellidos y nombres, fecha de
ingreso, turno y promedio de un alumno. Teniendo las siguientes caractersticas:
1. El primer carcter de cada nombre o apellido debe convertirse en mayscula y
el resto en minsculas.
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 nmero entre 0 y 21.
5. Los botones Nuevo y Salir deben permanecer desactivados hasta que se
ingresen todos los datos correctos.

Paso N 01: Disear el formulario


Paso N 02: Asignar los nombres a los respectivos controles.

Control
TextBox1
TextBox2
TextBox3
TextBox4
Button1
Button2

Name
txtapenom
txtfecing
txtturno
txtpromedio
btnnuevo
btnsalir

Joel Martin Chuco Marrufo


28

Visual Basic .Net 2003

Paso N 03: Escribir las instrucciones con mucha lgica, y sobre todo que
funcione. Bueno primero comencemos con crear funciones okis.

Funcin Limpiar
Funcin Minsculas
Function Limpiar()
txtapenom.Text = ""
txtfecing.Text = ""
txtturno.Text = ""
txtpromedio.Text = ""
btnnuevo.Enabled = False
btnsalir.Enabled = False
txtapenom.Focus()
End Function

Function Minuscula(ByVal v)
If (v >= 97 And v <= 122) Then
Minuscula = True
Else
Minuscula = False
End If
End Function

Funcin Nmero
Funcin Maysculas
Function Mayuscula(ByVal v)
If (v >= 65 And v <= 90) Then
Mayuscula = True
Else
Mayuscula = False
End If
End Function

Function Numero(ByVal v)
If (v < 48 Or v > 57) Then
Numero = False
Else
Numero = True
End If
End Function

Funcin 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
Funcin 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: Despus 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 aplicacin?", 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 slo 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 slo 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 slo nmero", 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 slo 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

 Despus de una larga codificacin, viene la explicacin, haber por donde


comenzamos, creo que por el cambio de cdigo que ha tenido esta nueva
versin, primero veamos de la funcin Left, en la versin 6.0 y despus en la
versin .Net.

En el visual Basic 6.0 el cdigo de la funcin Left sera 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 versin el visual Basic nos obliga que especifiquemos de que
biblioteca estamos usando la funcin Left, asi que si no acepta alguna funcin que
utilizabas en la versin anterior, solo es cuestin de revisar la librera de
Microsoft.VisualBasic, por que all encontraras varias funciones como lo es la
funcin Right, Mid, Len, etc, as como las funciones de matemticas puedes
encontrarlas en la biblioteca Math, solo escribes Math. Y de ah buscas la funcin
que deseas.
Bueno ya te explique el cambio que tuvo en la funcin Left, ahora me toca la
de algunas propiedades, eventos y mtodos que ha cambiado en el control
TextBox, as que comencemos por los eventos, okis.

Visual Basic 6.0


LostFocus
Change
Load
KeyPress

Visual Basic .Net


Leave
TextChanged
Form_Load
KeyPress

Como se habrn dado cuenta son algunos eventos noms que han cambiado
de nombre, refirindome a los ms 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 ejecucin. Que quede claro que el argumento
e solo devuelve caracteres de tipo char, para ser comparados con algn cdigo
ASCII debern convertir este carcter a un cdigo ASCII mediante la funcin ASC, y
que tambin que quede en claro que al argumento e, no le podrs asignar
ninguna instruccin. Como por ejemplo: Para ignorar un digito ingresado en la
versin 6.0 solo te bastaba digitar keyAscii = 0, en cambio en esta versin no
podrs asignarle un valor, pero en la versin beta del 2005 si, este argumento e,
si se le puede asignar valores a este argumento, as que te recomendara que te
prepares para esta nueva versin del Visual Basic que se llama Visual Basic 2005
Express Edition, buena ahora esta en versin Beta 2, pero les digo que es una
versin con nuevos controles y nuevos tipos de formularios, y se parece mucho a la
Versin 6.0 en cuanto a los eventos, y no a la codificacin, me entienden?, bueno,
entonces instalen el Beta que ya esta publicado en la pagina de Microsoft en
espaol, 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 versin beta y llevrtelo a tu casa a instalarlo, ya que es una instalacin
va Internet, okis, ahora sigamos con la explicacin.
Bueno ahora me toca explicar sobre las funciones, como crear las funciones
(aunque no hay mucho de explicar), bueno en esta nueva versin para crear una
funcin solo basta escribir la palabra Function y el nombre de la funcin y darle un
Enter, y nada mas, en eso si no ha cambiado. Bueno dejemos la palabrera y a
seguir practicando.

Aplicacin N 10
Esta aplicacin 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 caractersticas que les pido en este formulario es lo siguiente:


1. Al iniciar el formulario estn desactivados los botones de Depsito y Retiro y la
caja de texto de monto.
2. Al dar clic en el botn ok, este se ocultara y desactivara la caja de texto cliente,
y al mismo tiempo nos salga una ventana solicitndonos que ingresemos un
monto especfico, para la apertura de la cuenta.
3. Que por cada depsito 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 aplicacin.

Paso N 01: Disear el formulario, como se muestra, si quieren cmbienles 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
TextBox1
TextBox2
Label7
Label8
Label9
Label10
Label12
Button1
Button2
Button3
Button4
Button5

Name
txtcliente
txtmonto
lblcdeposito
lblcretiro
lbltdeposito
lbltretiro
lblsaldo
btnok
btndeposito
btnretiro
btnnuevo
btnsalir

Paso N 03: Ahora lo ms fcil, la codificacin, es fcil por que es una aplicacin
pequea, no como la otra que haba un montn para codificar, as que
comencemos, primero vamos a declarar variables a nivel del formulario, sea
despus de donde dice Cdigo generado por el Diseador de Windows Forms.

Dim td, cd, tr, cr, saldo As Integer

Funcin 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 nmeros 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 lneas de cdigo no es necesario, por que solo le asignaramos
'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 nmeros 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 haba explicado sobre el Nuevo cdigo 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 informacin etc.], [Aqu va
el titulo del mensaje])
Si muestras un mensaje de decisin, aqu tambin puedes comparar la
respuesta que el usuario de, como lo hago yo, en el mensaje salir, esto cambia a
comparacin del visual Basic 2005, que solo cambia un cdigo.

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 aplicacin nos pide ingresar el nombre del profesor, nmero de horas
normales que ha trabajado y el nmero de horas extras, luego se debe de calcular
el total que se le debe pagar por el nmero 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

Aplicacin 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
100 101
De 101.1 a 200
De 200.1 a 500
A partir de 500

DESCUENTO %
2%
4%
6%
10 %

Paso N 01: Disear el formulario como se muestra en la figura.


Paso N 02: Asignar los nombres a cada control.

Control
TextBox1
TextBox2
TextBox3
Label7
Label8

Name
txtproducto
txtprecuni
txtcantcomp
lblsubtotal
lbldescP

Joel Martin Chuco Marrufo


40

Visual Basic .Net 2003


Label9
Label11
Button1
Button2
Button3

lbldescS
lbltotal
btncalcular
btnnuevo
btnsalir

Paso N 03: Ahora nos toca hacer la codificacin, si te ha estado saliendo todo
bien hasta ahora y haz entendido, no te ser difcil. As que comencemos:

Funcin 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 aplicacin?", 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 habrn dado cuenta, no hay mucho que explicar, la mayora de este
capitulo, no hay mucha explicacin por que si se han dado cuenta, casi el cdigo
no ha cambiado a comparacin de la versin 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 versin, y si
desean saber o estudiar todo de nuevo, no se preocupen que hay varias
instituciones donde ensean lenguaje de programacin, jejejeje, mentira, solo
que se esperarn un poco, por que a mediados de febrero del prximo ao,
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
Programacin basado en el Visual Basic 2005 Express Edition, por ahora lo
estoy trabajando en la Versin Beta 2 en espaol que ha salido, espero que
salga pronto la versin 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 aplicacin nos pide ingresar el nombre del alumno, su nota N 1 y su


nota N 2, al hacer clic en el botn Obtener Promedio se debe visualizar: el
promedio del alumno, una observacin 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.
Tambin se debe visualizar la Nota Cualitativa del alumno de acuerdo al promedio.
Se debe de controlar que slo se ingresan notas entre 0 y 20.

Entre
Entre
Entre
Entre
Entre

0y5
5.1 y 10.4
10.5 y 14.4
14.5 y 17.4
17.5 y 20

Psimo
Malo
Regular
Bueno
Excelente

Paso N 01: Disear el Formulario.


Paso N 02: Asignar los nombres a los controls.

Joel Martin Chuco Marrufo


43

Visual Basic .Net 2003

Control
TextBox1
TextBox2
TextBox3
TextBox4
Label8
Label9
Label10
Label12
Button1
Button2
Button3

Name
txtalumno
txtcurso
txtn1
txtn2
lblpromedio
lblobservacion
lblpuntos
lblcualidad
btnotro
btnpromedio
btnfinalizar

Paso N 03: El paso ms fcil de este formulario, la codificacin, as que hagan


todo su esfuerzo de copiar bien, sea recuerden el cole, jejejeje.

Funcin 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,
"Informacin Acadmica") = 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 nmeros entre 0 y 20 en la primera nota",
MsgBoxStyle.Information, "Informacin Acadmica")
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 nmeros entre 0 y 20 en la segunda
nota", MsgBoxStyle.Information, "Informacin Acadmica")
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 = "Psimo"
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 ponamos, los nmeros 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

Aplicacin Propuesta N 06
En esta aplicacin se debe de ingresar el nombre y el ao de nacimiento de
una persona y se tiene que visualizar: su edad, una observacin que indica si es
mayor o menor de edad. Si es menor de edad se debe de mostrar cuantos aos le
faltan para ser mayor de edad y si es mayor de edad se debe de mostrar hace
cuantos aos es mayor de edad. Tambin se debe de mostrar la etapa de la
persona teniendo en cuenta lo siguiente:

0 y 12
13 y 17
18 y 30
31 y 70
70 a mas

Nio
Adolescente
Joven
Adulto
Anciano

 Solo les voy a dar una recordacin, existe dos funciones para saber la fecha
actual, una es la de Now(), que te devuelve la fecha actual, con das, meses,
aos, horas, minutos, y segundo, y existe otra funcin que te devuelve el aos
ingresado, es Year(), esta funcin 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 ao actual del sistema la codificacin seria Year(Now()), bueno
creo que mucha ayuda les he dado, as que suerte.

Joel Martin Chuco Marrufo


46

Visual Basic .Net 2003

Aplicacin N 13

La siguiente aplicacin es un ejemplo del uso de las funciones de cadena.

Paso N 01: Disear el formulario.


Paso N 02: Asignar los nombres a los controles.

Control
TextBox1
Label10
Label11
Label12
Label13
Label14
Label15
Label16
Label17
Button1
Button2
Button3

Name
txtfrase
lbllongitud
lblprimer
lblultimo
lblsegasexto
lblposA
lblminusculas
lblmayusculas
lbltitulo
btnmuestra
btnnueva
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 aplicacin?", 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 funcin llamada StrConv para
convertir cadenas, esta funcin contiene varias parmetros como lo es
VbStrConv.ProperCase, que convierte a la cadena en forma titulo, tambin
encontraras para convertir en maysculas y minsculas, es cosa que averiges.

Joel Martin Chuco Marrufo


48

Visual Basic .Net 2003

Aplicacin N 14

Esta aplicacin nos pide ingresar el nombre y la fecha de nacimiento de una


persona y visualizarse por separado: el da, mes, ao, nmero del da de la
semana, la fecha en letras y la fecha y hora actual.

Paso N 01: Disear el formulario.


Paso N 02: Asignarles los nombres respectivos a los controles

Control
TextBox1
TextBox2
Label7
Label8
Label9
Label10
Label11
Label12
Button1
Button2

Name
txtnombre
txtfecnac
lbldiaing
lblmesing
lblanioing
lbldiasem
lblfecing
lblfecact
btnok
btnsalir

Joel Martin Chuco Marrufo


49

Visual Basic .Net 2003

Paso N 03: Crear el cdigo, bueno usando mas o menos el cdigo 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, ao, ndia As Integer
If IsDate(txtfecnac.Text) = False Then
MsgBox("Debe de ingresar un fecha vlida, 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)
ao = Year(fecha)
ndia = Weekday(fecha)
lbldiaing.Text = dia.ToString
lblmesing.Text = mes.ToString
lblanioing.Text = ao.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 = "Sbado"
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 " +
ao.ToString

Joel Martin Chuco Marrufo


50

Visual Basic .Net 2003

Aplicacin N 15

Esta aplicacin es un ejemplo de la utilidad de las funciones tipo numricas.

Paso N 01: Disear el formulario.


Paso N 02: Asignar los nombres a cada control, respectivamente.

Control
TextBox1
Label9
Label10
Label11
Label12
Label13
Label14
Label15
Button1
Button2
Button3

Name
txtnum
lblpartent
lblpartdec
lblvalabs
lblraizcuad
lblsigno
lblvaloct
lblvalhex
btnmuestra
btnnueva
btnsalir

Paso N 03: Crea o copiar el cdigo, bueno si ya se sienten capaces de poder


resolver esta aplicacin hganlo, para as saber que estn 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 aplicacin?", MsgBoxStyle.Question.YesNo,
"Ejemplo de Funciones Numricas") = MsgBoxResult.Yes Then Me.Close()

btnmuestra (Evento Click)


If IsNumeric(txtnum.Text) = False Then
MsgBox("Debe de Ingresar un valor numrico", MsgBoxStyle.Information,
"Ejemplo de Funciones Numricas")
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

Aplicacin N 16
La siguiente aplicacin permite ejecutar desde el Visual Basic algunos
programas.

Paso N 01: Disear el formulario.


Paso N 02: Asignar los nombres a los respectivos controles.

Control
Button1
Button2
Button3
Button4
Button5
Button6

Name
btncalcelct
btnword
btnexcel
btnexplorador
btndos
btnfinalizar

Joel Martin Chuco Marrufo


53

Visual Basic .Net 2003

Paso N 03: Hacer la pequea codificacin.

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 aplicacin?", MsgBoxStyle.Question.YesNo,
"Uso de Shell") = MsgBoxResult.Yes Then Me.Close()

 Como se habrn dado cuenta, lo nico que cambio en esta funcin son los
parntesis, que en la versin antigua no se pona, nada mas, as que no hay
casi nada de explicar, por que la forma de cmo 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

Aplicacin N 17

Esta aplicacin 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; adems, el valor
binario se debe de desplazar de izquierda a derecha por el formulario.

Paso N 01: Disear el formulario.


Paso N 02: Asignarles los nombres respectivos a los controles del formulario.

Control
TextBox1
Label5
Label6
Label7
Label8
Button1

Name
txttexto
lblletra
lblascii
lblbinario
Label8
btnok

Joel Martin Chuco Marrufo


55

Visual Basic .Net 2003

Paso N 03: Crear el cdigo, bueno solo codificaremos en el funcion binario


y en el botn Ok.

Funcin 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

Aplicacin N 18

Esta Aplicacin nos pide ingresar un nmero del 1 al 7 y se debe de


visualizar el da de semana al cual pertenece el nmero ingresado, para esta
ocasin vamos hacer usando array.

Paso N 01: Disear el Formulario.


Paso N 02: Asignar los nombres respectivos a cada control.

Control
TextBox1
Label2
Button1
Button2

Name
txtnum
lbldia
btnok
btnsalir

Paso N 03: Codificar, para esto primero declararemos variables a nivel del
formulario (sea mejor dicho, despus de donde dice cdigo generado por el
diseador 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)
D(1)
D(2)
D(3)
D(4)
D(5)
D(6)

=
=
=
=
=
=
=

"Lunes"
"Martes"
"Miercoles"
"Jueves"
"Viernes"
"Sbado"
"Domingo"

btnok (Evento Click)


If txtnum.Text = "" Or Val(txtnum.Text) < 1 Or Val(txtnum.Text) > 7 Then
MsgBox("Ingrese un nmero 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 nmero ingresado representa el da " + 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 versin anterior en la declaracin de arrays, es que en la


versin anterior uno poda definir de que numero a que numero poda contener
su array, pero con esta nueva versin, es como en el C++, si le quieres indicar
un nmero 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 versin
antigua te hubiera aceptado solo 6 elemento, por que este contabilizaba desde
1 a 6, en cambio con esta versin contabiliza desde el 0 al 6, que viene a ser 7
elementos.

Joel Martin Chuco Marrufo


58

Visual Basic .Net 2003

Aplicacin N 19

Esta aplicacin 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: Disear el formulario.


Paso N 02: Asignar los nombres respectivos a cada control.

Control
TextBox1
TextBox2
TextBox3
TextBox4
TextBox5
TextBox6
TextBox7
TextBox8
TextBox9
TextBox10
TextBox11
TextBox12
TextBox13
TextBox14
TextBox15
TextBox16
Button1
Button2
Button3
Button4
Button5

Name
txtarray_0
txtarray_1
txtarray_2
txtarray_3
txtarray_4
txtarray_5
txtarray_6
txtarray_7
txtarray_8
txtarray_9
txtarray_10
txtarray_11
txtarray_12
txtarray_13
txtarray_14
txtarray_15
btnnuevo
btnordenar
btnrestaurar
btnllenar
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.

Declaracin de Arrays a nivel del formulario


Dim ArrayText(15), ArrayTemp(15) As Integer

Funcin 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

Funcin 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 despus restaurarlo
For J = 0 To 15
ArrayTemp(J) = ArrayText(J)
Next
'Mtodo de Ordenacin 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 aplicacin?", MsgBoxStyle.Question.YesNo,
"Cuidado") = MsgBoxResult.Yes Then Me.Close()

Joel Martin Chuco Marrufo


61

Visual Basic .Net 2003

Aplicacin N 20

Esta aplicacin permite manejar los elementos de un array de 16 elementos,


estos elementos son valores numricos 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: Disear el formulario.


Paso N 02: Asignar los nombres correspondientes a cada control.

Joel Martin Chuco Marrufo


62

Visual Basic .Net 2003


Control
TextBox1
TextBox2
TextBox3
TextBox4
TextBox5
TextBox6
TextBox7
TextBox8
TextBox9
TextBox10
TextBox11
TextBox12
TextBox13
TextBox14
TextBox15
TextBox16
Label1
Label2
Label3
Label4
Label5
Label6
Label7
Label8
Label9
Label10
Button1
Button2
Button3
Button4
Button5
Button6
Button7
Button8
Button9
Button10
Button11
Button12
Button13
Button14
Button15

Name
txtarray_0
txtarray_1
txtarray_2
txtarray_3
txtarray_4
txtarray_5
txtarray_6
txtarray_7
txtarray_8
txtarray_9
txtarray_10
txtarray_11
txtarray_12
txtarray_13
txtarray_14
txtarray_15
lblresD1
lblresD2
lblresC1
lblresC2
lblresC3
lblresC4
lblresF1
lblresF2
lblresF3
lblresF4
btnLimpArray
btnLimpRes
btnSumaC
btnSumaF
btnColum1
btnColum2
btnColum3
btnColum4
btnFila1
btnFila2
btnFila3
btnFila4
btnDiagonal1
btnDiagonal2
btnsalir

Paso N 03: Codificar, bueno como siempre, declaramos arrays a nivel del
formulario y crearemos funciones.

Declaracin 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


Funcin 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
Funcin 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


Funcin 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

Funcin 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 Aplicacin?", 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

Aplicacin N 21

La siguiente aplicacin permite realizar operaciones con arrays como sumar


dos arrays, restar, multiplicar, etc.

Paso N 01: Disear el formulario.


Paso N 02: Asignar los nombres respectivos a los controles.

Joel Martin Chuco Marrufo


68

Visual Basic .Net 2003

Control
TextBox1
TextBox2
TextBox3
TextBox4
TextBox5
TextBox6
TextBox7
TextBox8
TextBox9
TextBox10
TextBox11
TextBox12
TextBox13
TextBox14
TextBox15
TextBox16
TextBox16
TextBox16
Label1
Label2
Label3
Label4
Label5
Label6
Label7
Label8
Label9
Button1
Button2
Button3
Button4
Button5
Button6
Button7
Button8

Name
txta_0
txta_1
txta_2
txta_3
txta_4
txta_5
txta_6
txta_7
txta_8
txtb_0
txtb_1
txtb_2
txtb_3
txtb_4
txtb_5
txtb_6
txtb_7
txtb_8
lblres_0
lblres_1
lblres_2
lblres_3
lblres_4
lblres_5
lblres_6
lblres_7
lblres_8
btnborrar
btnLlenar
btnsalir
btnsuma
btnresta
btnmultiplica
btndivide
btnecuacion

Paso N 03: Codificar, primero declarar los arrays a nivel del formulario y
despus 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

Funcin 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

Funcin 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

Funcin 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

Funcin 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

Funcin 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 aplicacin?", 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 seores, con esto acabo con la primera entrega, que es lo bsico, bueno
antes de despedirme, les dir una cosa, como ustedes saben, esto de arrays, es
algo fcil y mucho mas fcil en la versin 6.0, ya que se puede crear un array
con los controles de texto, bueno en esta versin si se puede tambin crear
array de controles, pero con la diferencia que tendramos 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, desendoles unas Felices Fiestas, y la prxima


entrega ya lo har el prximo ao, 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 rpido posible, as que hasta el prximo ao, byes y no tomen
mucho
Donaciones a la Cuenta de Ahorros del Banco Interbank del Per


Cuenta en Soles:
067-3008573552

Cuenta en Dlares:
067-3008573560

www.interbank.com.pe

Lima, 14 de Diciembre de 2005

Joel Martin Chuco Marrufo


73

También podría gustarte