Você está na página 1de 131

Visual

Basic.Net
Este libro de ha sido elaborado
con la firme finalidad de
contribuir en el desarrollo
lógico intelectual de las
personas interesadas en
aprender el Lenguaje de
programación
Visual Basic.

Luis Zedler Espinoza Claro

1
Luis Zedler Espinoza Claro
El Instituto Superior Tecnológico COMPUTRON, en su afán
de formar buenos profesionales, triunfadores en el mercado
actual, les da LA BIENVENIDA con este manual para que tu
aprendizaje sea total.
Los deseos de nuestra Institución es que alcances todas las
metas, que trasciendas en este tiempo, que tus retos siempre
sean continuos y frente a ello, estamos nosotros apoyando tu
completa realización profesional.
El aprendizaje que recibirás será la formación de alta calidad,
que impartirá con mucho dinamismo, nuestra plana docente,
especializada en Computación e Informática, con un software
totalmente actualizado, innovando programas que solicita el
mercado actual.
Con el transcurrir del tiempo La Informática se ha convertido
en parte de nuestra vida, tanto en el campo familiar como
laboral, y en el campo educacional, nosotros tenemos motivos
suficientes que nos comprometen para serviles cada día.
Te deseamos todos los EXITOS.
Autor: Luis Z. Espinoza Claro
luis_eclaro@hotmail.com
Gerente General: Richar Bacón Terrones
Director General: Luís Raffo Benavides

2
Visual Basic .NET
UNIDAD I

Introducción a la plataforma .Net


Entorno de desarrollo visual Basic .Net

3
Luis Zedler Espinoza Claro
Introducción a Visual Studio .NET

Visual Studio es una herramienta Rápida de Desarrollo


(RAD) creado por Microsoft para desarrollar servicios
Web XML. Esta herramienta permite crear aplicaciones
usando el Framework (Marco) de .NET, es decir usando
la CLR, Librería de clases, ADO.NET, ASP.NET, etc

Características principales de las Herramienta Rápida de


Desarrollo (RAD)

Creación de paginas Web mediante formularios Web,


incluye un diseñador de paginas Web HTML y ASP.NET
basado en formularios Web.
• Creación de servicios Web XML
• Acceso a Servicios Web XML
• Creación de Componentes .NET
• Creación de Archivos XML

Neutralidad de Lenguajes .NET

Código reutilizable y compartido en los diferentes


lenguajes, puesto q todos son clases en .NET
Acceso API’S igual para todos los Lenguajes, los
lenguajes del Framework comparten las mismas clases o
API’S del sistema.
Herencia cruzada entre lenguajes, se puede crear una
clase en un lenguaje y heredarse desde otra clase
escrita en un lenguaje diferente.
Manejo de errores cruzado entre lenguajes, se puede
controlar errores desde una clase por más que el error
ocurra en un objeto creado en otro lenguaje distinto al de
la clase que controla el error.

4
Visual Basic .NET
Lenguajes del .NET

Visual Basic
Incluye características nuevas y mejoradas, que lo
convierten en uno de los mejores lenguajes de
programación orientado a objetos, como por ejemplo, la
Herencia, las interfaces, etc

Visual C# (Si-sarp)
Es un Nuevo lenguaje de programación
orientado a objetos, es una evolución de C y
C++, que proporciona un amigable lenguaje y con
seguridad de tipos para el desarrollo de aplicaciones.
Visual C++
Las extensiones administrativas (migración) de C++ y la
programación de atributos, que son un método rápido y
eficaz para simplificar la programación COM con Visual
C++.
JScript
Actualmente es un leguaje de secuencias de comandos
basado en clases y orientado a objetos, es compatible
con versiones y admite otros lenguajes gracias a la
compatibilidad con Common Language Specification
(CLS)

Microsoft .NET

.NET fue un proyecto de Microsoft para crear una nueva


plataforma de desarrollo de software con énfasis en
transparencia de redes, con independencia de

5
Luis Zedler Espinoza Claro
plataforma y que permita un rápido desarrollo de
aplicaciones.
.NET es una herramienta de creación rápida de
aplicaciones Web ASP, ofreciendo la capacidad de
desarrollar, implementar, administrar y utilizar soluciones
conectadas a través de Servicios Web XML, de manera
rápida, económica y segura. Estas soluciones permiten
una integración más rápida y ágil entre las empresas y el
acceso a información a cualquier hora, en cualquier lugar
y a través de cualquier dispositivo.

Visual Studio .NET

Es una nueva tecnología que responde a la necesidad


de comunicación total entre negocios de sistemas
heterogéneos y con gran capacidad de procesamiento.

Versiones:

Visual Studio .NET


Versión inicial del año 2002; técnicamente llamada
Visual Studio 7.0. Es conocida como Visual Studio .NET
2002 tras la publicación de Visual Studio .NET 2003.

Visual Studio .NET 2003


También llamada Visual Studio 7.1.
Cambios sobre la 7.0
• Incorpora .NET Framework 1.1
• Añade soporte del .NET Compact Framework
(para dispositivos portátiles).

6
Visual Basic .NET
• Añade el ASP.NET Mobile Designer (para
construir aplicaciones Web para dispositivos
portátiles, PDAs y "pagers")
• Updated Visual Basic to 7.1 (uno de los cambios
más importantes fue dar soporte para
declaraciones inline)
• Varias mejoras menores y cambios en la interfaz.

Visual Studio 2005

La versión definitiva en inglés vio la luz en Noviembre del


2005. En castellano hubo que esperar hasta Febrero de
2006.
• Incorpora .NET Framework 2.0
• Hay más ediciones diferenciadas por el precio y
las características.
• Ayuda con refactorización.
• El desarrollo de páginas con ASP.NET ha
cambiado.
• Soporte para el nuevo software servidor Team
System.
• Añadido soporte de tests para todo tipo de
aplicaciones.

Ediciones
• Edición Profesional
• Edición Académica (Edición Profesional, pero con
un CD "Student Tools" adicional y un 90% de
descuento)
• Enterprise Developer Edition
• Enterprise Architect Edition

7
Luis Zedler Espinoza Claro
El Framework .NET (Marco)

Es una nueva plataforma informática que significa el


desarrollo de aplicaciones en un entorno altamente
distribuido como es Internet. Esta enfocado a
programación orientada a objetos.

Contiene 2 componentes importantes:

• Common Language Runtime


• Biblioteca de clases de .NET Framework

Marco de trabajo .NET


VB C++ C# J# …

Visual Studio .NET


Componentes del Marco .NET

ASP.NET Formularios
Formulario Windows
Web y Servicios Web

ADO.NET: Datos y XML


Librería de Clases de Marco .NET
Lenguaje Común en Tiempo de Ejecución
(CLR)
Sistema Operativo

8
Visual Basic .NET
Common Language Runtime (CLR)

El CLR es el verdadero núcleo del Framework de .NET,


entorno de ejecución en el que se cargan las
aplicaciones desarrolladas en los distintos lenguajes,
ampliando el conjunto de servicios del sistema operativo.

La herramienta de desarrollo compila el código fuente de


cualquiera de los lenguajes soportados por .NET en un
código intermedio (MSIL, Microsoft Intermediate
Lenguaje), similar al BYTECODE de Java. Para generar
dicho código el compilador se basa en el Common
Language Specification (CLS) que determina las reglas
necesarias para crear ese código MSIL compatible con el
CLR.
Para ejecutarse se necesita un segundo paso, un
compilador JIT (Just-In-Time) es el que genera el código
máquina real que se ejecuta en la plataforma del cliente.
De esta forma se consigue con .NET independencia de
la plataforma hardware.
La compilación JIT la realiza el CLR a medida que el
programa invoca métodos, el código ejecutable obtenido,
se almacena en la memoria caché del ordenador, siendo
recompilado de nuevo sólo en el caso de producirse
algún cambio en el código fuente.

9
Luis Zedler Espinoza Claro
Biblioteca de Clases de .NET Framework

Es una colección de tipos reutilizables q se integran con


Common Lenguaje Runtime, esta orientada a objetos, lo
que proporciona tipos de los que su propio código
administrativo puede derivar funciones.
También se puede utilizar .NET Framework para
desarrollar los siguientes tipos de aplicaciones y
servicios

10
Visual Basic .NET
Ingresando al programa

Inicio
Programas

Clic en Microsoft Visual Studio 2005

11
Luis Zedler Espinoza Claro
Nuevo entorno de desarrollo integrado (IDE)

Imagen 1

Se puede observar la clásica barra de menús, la barra de


herramientas, a la derecha explorador de soluciones
donde se muestran los forms, clases, etc.
Cuando se crea un proyecto. A la izquierda esta el
cuadro de herramientas que se muestra cuando pasas el
puntero por encima.

La imagen anterior muestra la barra de menús y la barra


de herramientas estándar del Visual Studio; la primera
herramienta te permite crear un nuevo proyecto para
Windows, la segunda herramienta te permite crear un
nuevo sitio web, otra de las herramientas es abrir, etc.

12
Visual Basic .NET
Pasos para crear una aplicación Windows
1- Menú Archivo
2- Clic en Nuevo Proyecto y aparece la siguiente
ventana.

Imagen 2

3- En esta ventana, se elige el programa donde se


desarrollara el proyecto (Visual Basic, C#, etc.)
4- Elegimos también una plantilla de tipo de aplicación o
archivo, finalmente le damos un Nombre al proyecto.

Al hacer clic en el botón Aceptar (Imagen 2), aparece


nuestro primer formulario Windows, el cuadro de
herramientas, explorador de soluciones y la ventana de
propiedades. (Imagen 3 siguiente pagina).

13
Luis Zedler Espinoza Claro
Imagen 3

Explorador de soluciones

Esta venta muestra


los archivos del
proyecto, como son
formularios clases,
imágenes, entre
otros. Cuenta con
herramientas para:
mostrar la ventana de propiedades, mostrar todos los
archivos del proyecto, actualizar vista y cambios en los
objetos, ver la ventana de código, ver el diseñador y el
diagrama de clase.

14
Visual Basic .NET
Cuadro de Controles.

Contiene herramientas de
diseño y programación, los
mismos que se agregaran al
diseñador (form o web).

Ventana de Propiedades.

Permite cambiar las


características de los
controles que se encuentran
dentro de un diseñador
(form o web).

A continuación
procederemos a cambiar
algunas propiedades del
Form1

Acceptbotton, permite
indicar que botón de
comando se activara cuando
el usuario presione Enter.
Autoscroll, activado esta
propiedad, el usuario podrá
desplazarse con las barras
horizontales y verticales.
BackgroundImage, permite
mostrar una imagen de
fondo (cascada/centrado).
Cancelbutton, permite

15
Luis Zedler Espinoza Claro
indicar que botón de comando se activara cuando el
usuario presione ESC.
IsMDIContainer, True, determina el tipo de formulario
MDI (interfase de múltiple documento).
Opacity, indica la forma de visualización, opaco (100%)
o semitransparente (Ej. 50 %).
Startposition, indica la posición inicial del formulario.
Text, antes llamada Caption, permite mostrar un texto en
el titulo.
TopMost, permite indicar que siempre se vera en primer
plano o delante de los demás formularios.
WindowsState, determina la forma de presentar el
formulario (normal/minimizado/maximizado).

Eventos del Formulario.

Para trabajar con los eventos del formulario, ingrese a la


ventana de código, haciendo doble clic en el formulario o
clic en la herramienta “ver código” de la venta de
soluciones.

Activated, ocurre al activarse el formulario.


FormClosed, ocurre al cerrar el formulario (equivalente
al Unload del VB 6.0).
FormClosing, ocurre mientras se esta cerrando el
formulario (aquí, aun se puede cancelar la salida).
GoFocus, ocurre cuando activa el foco del formulario.
LostFocus, ocurre al salir el foco del formulario.
Load, ocurre al cargar los controles al formulario.
MouseEnter, ocurre al ingresar el puntero del Mouse
sobre el área del formulario.
MouseLeave, ocurre al salir el puntero del Mouse.

16
Visual Basic .NET
MouseMove, ocurre al mover el puntero Mouse sobre el
formulario.
Move, ocurre al mover el formulario.
Resize, ocurre cuando cambia el tamaño del formulario.

Métodos del Formulario.

Close, cierra el formulario, liberándolo de la memoria.


Hide, oculta el formulario, sin descargarlo de memoria.
Show, muestra el formulario.
ShowDialog, muestra un formulario como ventana
Modal, siempre visible en primer plano.

Ejemplo
Agregue un formulario
con un Label1, cambie
sus propiedades.
Codifique en los
diferentes eventos. Para
ingresar a la ventana de
código haga doble clic en
el formulario.

Private Sub Form1_FormClosing() Handles _


Me.FormClosing
Dim rpta As String
rpta = MessageBox.Show("Desea cerrar", _
"Alerta!!!", MessageBoxButtons.YesNo)
If rpta = vbNo Then
e.Cancel = True
End If
End Sub

17
Luis Zedler Espinoza Claro
Private Sub Form1_MouseEnter() Handles _
Me.MouseEnter
Label1.Text = "Mouse, dentro del formulario"
End Sub

Private Sub Form1_Load() Handles MyBase.Load


MessageBox.Show("Bienvenido", "Hola", _
MessageBoxButtons.OK)
End Sub

Private Sub Form1_MouseLeave() Handles _


Me.MouseLeave
Label1.Text = "Mouse, Fuera del formulario"
End Sub

Private Sub Form1_Move() Handles Me.Move


Label1.Text = "cambio de lugar el formulario"
End Sub

Como ejecutar un formulario


Tenemos tres formas como ejecutar.
• Con el teclado: presione F5
• Menú Depurar/ iniciar depuración
• Barra de herramientas Iniciar depuración.

Como detener la ejecución


• Cierre el o los formularios en ejecución.
• Barra de herramientas Detener depuración

18
Visual Basic .NET
Como agregar un formulario al proyecto.
• Clic en “Agregar Nuevo Elemento” de la barra de
herramientas
• Clic en “Agregar Windows Forms”

Otros pasos opcionales.


• Menú proyecto
• Agregar Windows Forms
Con cualquiera de los pasos anteriores, aparece esta
ventana (siguiente imagen), Observe que ya aparece
seleccionado la plantilla Windows Forms.

• Ingrese o modifique el
nombre que se le
asignara al formulario.

• Finalmente haga clic en


aceptar.

19
Luis Zedler Espinoza Claro
Como guardar un proyecto con todos sus elementos.

• Menú archivo.
• Clic en Guardar todo.

O clic en guardar todo de la barra de herramientas.

Detalles de la ventana anterior (Guardar todo).

Nombre; aquí aparece el nombre del proyecto.

Ubicación; ruta o ubicación donde se guardara el


proyecto y todos sus elementos.

Botón Examinar; permite cambiar la ubicación donde


se guardara el proyecto.

Nombre de solución; aquí aparece el nombre de la


carpeta que se creará.
Dentro de esta carpeta se guardara el archivo del
proyecto y también se guardara aquí una carpeta con
todos los elementos del proyecto.

20
Visual Basic .NET
En esta imagen, la carpeta seleccionada es la carpeta
denominada Solución (Operadores). Dentro de esta otra
carpeta con el mismo nombre y el archivo del proyecto.
Nota. Si no quiere o no requiere crear una carpeta de
solución, desmarque la casilla de verificación “Crear
directorio para la solución”. De esta forma el archivo del
proyecto se guardara en la única carpeta Operadores.
Como abrir un archivo de proyecto.
Abrir la carpeta o directorio.
Ubicar el archivo del proyecto y haga doble clic

Nótese que esta imagen muestra un directorio sin


carpeta de solución, el archivo del proyecto aparece

21
Luis Zedler Espinoza Claro
dentro de la carpeta Operadores conjuntamente con
todos los elementos del proyecto.
Para abrir un proyecto, también puede seguir los
siguientes pasos:

• Abrir el programa Visual Studio.


• Menú Archivo.
• Abrir proyecto.
• Ubicar la carpeta y seleccione el archivo del
proyecto
• Clic en abrir
O también haga clic en el icono abrir de la barra de
herramientas estándar del Visual Studio.
Como cambiar el formulario de ejecución inicial.
La siguiente imagen muestra un proyecto con el nombre
operadores, este proyecto contiene 2 formularios; Form1
(es el formulario inicial) y FRMvariables.

Doble clic en My Proyect del Explorador de soluciones.


O también Menú Proyecto / Propiedades de …

22
Visual Basic .NET
Al seguir cualquiera de los pasos anteriores, aparece la
siguiente ventana (imagen), donde cambiaremos el
formulario de inicio. Observe que esta seleccionado el
panel aplicación dentro del pestaña operadores.

Clic aquí, para


seleccionar el nuevo
formulario de inicio.

Al seleccionar un nuevo formulario, los cambios ya serán


ejecutados por el programa de forma inmediata sin
necesidad de un botón aplicar o aceptar.
Observe las pestañas en la parte superior de la imagen:
Form1.vb(Diseño).- Es el diseñador del objeto formulario.
FRMvariables.vb(Diseño)
FRMvariables.vb* .- Es la ventana de código un formulario.
Operadores.- Es la venta de propiedades del formulario.
Cada una de las pestañas fue abierto para trabajar con
dicho objeto (formulario, ventana de código, etc.)
Estas pestañas se cierran con el botón x

23
Luis Zedler Espinoza Claro
Control TextBox

Propiedades

CharácterCasing, convierte a
mayúsculas o minúsculas el texto.
Lines, muestra el contenido de cada línea del texto
(debe activar la opción Multiline).
Maxlength, permite indicar el número de caracteres para
el control.
Multiline, habilitada esta opción se puede escribir varias
líneas de texto.
PasswordChar, indica el carácter que se mostrara
como mascara de entrada.
ReadOnly, indica que el control solo se puede ver pero
no editar.
ScrollBar, habilita las barras de desplazamiento, si el
control es multilínea.
WordWrap, cambia de línea al llegar al final de un texto
multilínea.

Métodos

AppendText, añade un texto al final del texto actual.


Clear, borra el contenido del TextBox.
Copy, Copia el texto y lo envía al portapapeles.
Cut, Corta el texto y lo envía al portapapeles.
Paste, pega el texto del portapapeles al TextBox.
ResetText, inicializa el texto.
Select, Selecciona el texto de un TextBox.
Undo, deshace el último cambio del texto.

24
Visual Basic .NET
Eventos

Keypress, ocurre al pulsar una tecla.


TextChanged, ocurre al hacer un cambio dentro del
TextBox.

El texto que se
muestra en el
TextBox se
encuentra
almacenado en la
propiedad Text
Si activa su
propiedad
Multiline, podrá
escribir un máximo de 32 KB de texto.

Control Button

Propiedades

Name, identifica al botón, comúnmente se una el prefijo


btn.
BackgroundImage, permite poner una imagen de fondo
al botón.
Image, imagen que mostrará el control.
ImageAlign, alineación de la imagen dentro del control.
TabIndex, indica el orden de fabulación.
Text, Permite mostrar un texto dentro del botón.

25
Luis Zedler Espinoza Claro
Eventos

Click, ocurre al
dar un clic sobre
el botón. Es el
evento mas
usado.

Ejemplo
(Métodos
TextBox):
Modificaremos el formulario de la página anterior, el cual
debe permitir cortar los caracteres (3) del TextBox1 y
pegarlo en el TextBox2, adicione un botón deshacer.

Private Sub btncortar_Click() Handles _


btncortar.Click
'Seleccionar los 3 primeros del TextBox1.
TextBox1.Select(0, 3)
'Copiamos lo seleccionado.
TextBox1.Cut()
End Sub
Private Sub btnpegar_Click()
'Pegamos.
TextBox2.Paste()
End Sub
Private Sub btndeshacer_Click()
TextBox2.Undo()
'Deshacemos la ultima accion
End Sub

26
Visual Basic .NET
Nota. Para ingresar a la ventana de código de un control,
haga doble clic en el control, ejemplo en el Botón o Textbox.

Ejemplo (KeyPress):

Crear una aplicación que permita calcular el área de un


triangulo, sabiendo que la formula es “Área= (Base X
Altura) / 2”, crearemos un procedimiento para realizar
dicha operación y lo invocaremos desde el evento
KeyPress del TextBox.

Con el siguiente código fuente estamos creando un


procedimiento CALCULAR que nos permitirá obtener el
área del un triangulo.
Private Sub calcular()
If Len(txtBase.Text) > 0 And _
Len(txtAltura.Text) > 0 Then
Dim base As Single, altura As Single, _

27
Luis Zedler Espinoza Claro
area As Single
base = Val(txtBase.Text)
altura = Val(txtAltura.Text)
area = (base * altura) / 2
txtArea.Text = area
Else
MessageBox.Show("Faltan Datos", "Ojo", _
MessageBoxButtons.OK)
End If
End Sub

En el Evento KeyPress, validamos que solo se ingresen


datos numéricos, luego invocamos al procedimiento
Calcular solo si el usuario presiona Enter.

Private Sub txtBase_KeyPress(ByVal _


sender As Object, ByVal e As _
System.Windows.Forms.KeyPressEventArgs)_
Handles txtBase.KeyPress, _
txtAltura.KeyPress
'solo numeros y llamar al procedimiento
If Char.IsDigit(e.KeyChar) Then
e.Handled = False
ElseIf Char.IsControl(e.KeyChar) Then
e.Handled = False
Else
e.Handled = True
End If
If Asc(e.KeyChar) = 13 Then
calcular()
End If
End Sub

28
Visual Basic .NET
Nota. Para cambiar de evento o procedimiento de un
determinado control, haga clic en el listado de procedimientos
y seleccione el requerido.

Parámetros de la ventana de código.

Sender.- variable que identifica al objeto que recibió el


evento.
e.- representa una matriz de argumentos.
Handles.- permite indicar con q objeto o evento se
ejecutara este evento.

Ejemplo (Changed): Crear una aplicación que permita


encontrar el código ASCII de una cadena de texto.

Private Sub TextBox1_TextChanged(ByVal_


sender As System.Object, ByVal e As _
System.EventArgs) Handles _

29
Luis Zedler Espinoza Claro
TextBox1.TextChanged
Dim nombre As String, letra As String,_
codascii As String
nombre = TextBox1.Text.Trim
codascii = ""
If nombre.Length > 0 Then
For Each letra In nombre
codascii = codascii & AscW(letra)
Next
Else
codascii = ""
End If
lblescrito.Text = codascii
End Sub

Control RadioButton
El control RadioButton sirve para presentar al usuario
opciones a elegir (solo una de todo un grupo), se puede
Mostar con texto, imagen o ambos.

Control CheckBox
Permite mostrar casillas de verificación al usuario,
opciones de tipo Verdadero/falso, donde podrá elegir una

30
Visual Basic .NET
o varios opciones dentro de todo un grupo de Checkbox.
Se puede mostrar con texto, imagen o ambos.

Propiedades resaltantes de RadioButton

Aparence; Controla la apariencia del radiobuttón.


AutoCheck; Cambia de estado cada vez que se da clic.
CheckAlign; Permite alinear el radiobuttón (9
posiciones).
Checked; Indica si el radiobuttón ha sido seleccionado o
no.
Image; Permite Mostar una imagen en el control.
AutoSize; Indica si el control cambia de tamaño para
ajustarse a su contenido.

Eventos

Click; ocurre al dar clic sobre el control.


CheckChanged; ocurre al cambiar el estado la
propiedad Checked.

31
Luis Zedler Espinoza Claro
Propiedades resaltantes de CheckBox

Aparence; Controla la apariencia del CheckBox.


AutoCheck; Cambia de estado cada vez que se da clic.
CheckAlign; Permite alinear el CheckBox (9 posiciones).
Checked; Indica si el CheckBox ha sido seleccionado o
no.
CheckState; devuelve el estado del checkBox, que
puede ser: Unchecked (Sin marcar), Checked (Marcado),
o Indeterminate (atenuado).

Eventos
Click; ocurre al dar clic sobre el control.
CheckChanged; ocurre al cambiar el estado la
propiedad Checked.

Control CheckedListBox,
ListBox, ComboBox

Propiedades

Items, Obtiene los


elementos del control
ListBox.
MultiColumn, Establece si
el control admite varias
columnas.
SelectionMode, indica si
se podrá seleccionar uno o
más filas (elementos).
SelectedIndex, Obtiene o
establece el índice de base

32
Visual Basic .NET
cero del elemento actualmente seleccionado.
SelectedItems, Obtiene una colección que contiene los
elementos actualmente seleccionados.
Sorted, indica los elementos se ordenan
alfabéticamente.
Text, Obtiene el texto del elemento seleccionado.

Métodos

FindForm, Recupera el formulario en el que se


encuentra.
FindString, Busca el primer elemento que comience con
una cadena especifica.
FindStringExact, Busca el primer elemento que coincida
exactamente con una cadena especifica.

Eventos

SelectIndexChanged, Ocurre cuando cambia la


propiedad SelectedIndex.

TextChanged, ocurre cuando cambia el valor de la


propiedad Text.

Ejemplo. Crear una aplicación que permita hacer un


listado de Alumnos.
Donde se ingresaran los nombres y apellidos a través de
un TextBox.
La aplicación debe permitir eliminar, ordenar y borrar
todo el listado.

33
Luis Zedler Espinoza Claro
Cuando se agregue o elimine elementos del listado, el
contador del listado debe actualizarse.

Vea la imagen del formulario para guiarse.

Código fuente:

Private Sub btnagregar_Click() Handles _


btnagregar.Click

If txtNombres.Text.Trim.Length > 0 Then


Me.chklista.Items.Add(Me.txtNombres.Text)
txtNombres.Clear()
lblcontador.Text = "Total Elementos:” _
& Me.chklista.Items.Count
End If
End Sub

34
Visual Basic .NET
Private Sub btnEliminar_Click() Handles _
btnEliminar.Click
Dim cod = chklista.SelectedIndex
If cod <> -1 Then
chklista.Items.RemoveAt(cod)
lblcontador.Text = "Total Elementos: " _
& Me.chklista.Items.Count
End If
End Sub
Ejemplo. Crear
una aplicación
que permita
insertar una
frase a un
TextBox a través
de un recuadro
de dialogo, la
aplicación debe
permitir alinear el
contenido,
cambiar el color
de fuente y fondo, cambiar de minúscula a mayúscula.
Public Class FRMopciones

Private Sub btnBorrar_Click()


TextBox1.Text = ""
End Sub
Private Sub btnCerrar_Click()
Me.Close()
End Sub
Private Sub RadioButton1_CheckedChanged()
TextBox1.TextAlign = HorizontalAlignment.Left
End Sub

35
Luis Zedler Espinoza Claro
Private Sub RadioButton2_CheckedChanged()
TextBox1.TextAlign = HorizontalAlignment.Center
End Sub
Private Sub RadioButton3_CheckedChanged()
TextBox1.TextAlign = HorizontalAlignment.Right
End Sub

Private Sub btninsertar_Click()


Dim nom As String
nom = InputBox("Ingrese una frase", ":)")
If nom.Length > 0 Then
TextBox1.Text = nom
End If
End Sub

Private Sub CheckBox1_CheckedChanged()


If CheckBox1.Checked = True Then
TextBox1.ForeColor = Color.Blue
Else
TextBox1.ForeColor = Color.Black
End If
End Sub

Private Sub CheckBox3_CheckedChanged()


If CheckBox3.Checked = True Then
TextBox1.Text = TextBox1.Text.ToUpper
Else
TextBox1.Text = TextBox1.Text.ToLower()
End If
End Sub

Private Sub CheckBox2_CheckedChanged()


If CheckBox2.Checked = True Then
TextBox1.BackColor = Color.Aqua
Else
TextBox1.BackColor = Color.White
End If
End Sub
End Class

36
Visual Basic .NET
UNIDAD II

Estructuras de datos, Variables y


Operadores

37
Luis Zedler Espinoza Claro
Tipos de datos.

Conversión de datos.

Viene a ser el proceso de cambiar un valor de un tipo de


dato a otro, las conversiones son de ampliación o
restricción, también pueden ser implícitas o explicitas,
según la sintaxis del código fuente.

Val, convierte una cadena de texto a número.

Precio = Val(txtprecio.Text)

ToString, convierte un número a cadena de texto.

txtimporte.Text = Importe.ToString

Conversión de ampliación.

Byte a Byte, Short, Integer, Long, Decimal, Single,


Double.
Short a Short, Integer, Long, Decimal, Single, Double.
Integer a Integer, Long, Decimal, Single, Double.
Long a Long, Decimal, Single, Double
Decimal a Decimal, Single, Double
Single a Single, Double
Double a Double
Char a Char, String

Conversión implícita.
No requiere de ninguna sintaxis en especial en el código
fuente.

38
Visual Basic .NET
Ejemplo de Conversión, diseñe el siguiente formulario.

Public Class Form1


Dim L As Integer
Dim G As Double
'conversion implicita
Private Sub btnimpli_Click()
L = 999
G = L
MsgBox(g.ToString)
End Sub

'conversion explicita,
Private Sub btnexpli_Click()
G = 11.77
L = CInt(G)
MsgBox(L.ToString)
End Sub
End Class
Para usar el código anterior, debe crear un formulario y
agregar 2 botones con el nombre de btnimpli y
btnexpli. El resultado de la conversión se mostrara
en un recuadro de mensaje.

39
Luis Zedler Espinoza Claro
Conversión explicita.

Utiliza un comando o mandato de conversión de tipos


seguido del cual va un dato entre paréntesis, como se
demuestra en el ejemplo anterior “L = CInt(G) “

Mandatos de Conversión

CBool a Boolean de numérico, string y object.


CByte a Byte de numérico, Boolean, string y object.
Cchar a char de string y object.
CDate a Date de string y object.
CDbl a Double de numérico, Boolean, string y object.
CDec a Decimal de numérico, Boolean, string y object.
CInt a Integer de numérico, Boolean, string y object.
CLng a Long de numérico, Boolean, string y object.
CObj a Object de cualquier tipo.
CShort a Short de numérico, Boolean, string y object.
CSng a Single de numérico, Boolean, string y object.
CStr a String de numérico, bolean, char, matriz char, date,
object
CType a tipo especifico después de la coma.
Ejm.: “L = CType(G, Integer)”

Variables.

Las variables nos permiten almacenar valores en forma


temporal para efectuar cálculos. Una variable tiene un
nombre y un tipo de dato. Para asignar y efectuar
cálculos a una variable, se usan instrucciones de
asignación, el signo igual (=) es un operador de
asignación.

40
Visual Basic .NET
Ejemplo. Crear una aplicación que muestre los nombres
de los productos dentro de un listado (ComboBox), la
aplicación permitirá ingresar la cantidad y el precio,
dando como resultado el importe.
Como agregar elementos al ComboBox, cuando
seleccione el ComboBox
aparecerá en el borde
una herramienta con
imagen de flecha (color
negro), haga clic sobre
dicha herramienta para
editar elementos o
conectarse a una base
de datos.

Vea la siguiente imagen…

En nuestro ejemplo haremos clic en Agregar elementos


o también podría realizarlo desde la ventana de
propiedades ubique en Items para agregar elementos al
ComboBox seleccionado.

41
Luis Zedler Espinoza Claro
Al seguir cualquiera de los pasos anteriores aparece la
siguiente ventana, donde registrará los elementos para el
listado.

Ingrese los datos para el listado y haga clic en el botón


aceptar, para editar el listado siga los mismos pasos.
El siguiente código corresponde al botón Calcular, se
declaran variables para cada dato,
Private Sub BtnCalcular_Click()
Dim Cantidad As Integer
Dim Precio As Double
Dim Importe As Double

Cantidad = Val(txtcantidad.Text)
Precio = Val(txtprecio.Text)
Importe = Cantidad * Precio
txtimporte.Text = Importe.ToString
End Sub

42
Visual Basic .NET
En el ejemplo anterior, la variable cantidad es de tipo
entero, solo permitirá almacenar números enteros.
Las variables precio e importe permitirán almacenar
números enteros y decimales.
A las 2 primeras variables le estamos asignando datos, a
Importe le estamos efectuando cálculos.

Val, convierte una cadena de texto a número.


ToString, convierte un número a cadena de texto.

Declaración de variables.
Es necesario declarar las variables para especificar su
nombre y sus características. El nombre de una variable
debe comenzar con una letra. No puede incluir
punto,$,&,!,%,!”·$%,#,@. No debe exceder de 255
caracteres. Debe ser única en su ámbito: procedimiento,
formulario, etc.
Para definir el tipo de dato o de objeto de una variable se
usa la cláusula As

Ámbito de variables.
Public en el modulo o clase para todo el proyecto.
Protected en una clase para toda la clase o una
derivada.
Friend en una clase alcance en el assemblie.
Private en el modulo alcance solo en el modulo.
Dim en el procedimiento solo para el
procedimiento.
Static en el procedimiento solo para el
procedimiento.

43
Luis Zedler Espinoza Claro
Ejemplo de uso de variables: para seguir los ejemplos
sugerimos verificar los controles que se usan en el
código fuente. (Deberá agregar forms, botones y textbox
con el nombre que aparecen en el código fuente).
1) Variables locales (Dim), dentro de la clase y de un
procedimiento
Public Class Frmlocales
Dim edad = 30
Private Sub Button1_Click()
TextBox1.Text = edad
End Sub
Private Sub Button2_Click()
If Val(TextBox1.Text) > 17 Then
Dim mensaje = "La edad es:" & Str(edad)
MessageBox.Show(mensaje)
End If
End Sub
End Class
2) Una variable con ámbito Friend es declarado en un
formulario y puede ser invocado desde otro.
Public Class FrmFriend
Friend DATO = 1977
Private Sub Button1_Click()
TextBox1.Text = DATO
End Sub
Private Sub Button2_Click()
FrmOtro.Show()
End Sub
End Class

44
Visual Basic .NET
Desde otro formulario invocamos al formulario anterior y
su variable Friend.
Public Class FrmOtro
Private Sub Button1_Click()
TextBox1.Text = FrmFriend.DATO
End Sub
End Class

3) Una variable Static (dato3), vea una comparación con


las demás variables (dato1, dato2).

Public Class FrmStatic


Dim dato1
Private Sub Button1_Click()
dato1 += 1
ListBox1.Items.Add(dato1)
End Sub
Private Sub Button2_Click()
Dim dato2
dato2 += 1
ListBox2.Items.Add(dato2)
End Sub

Private Sub Button3_Click()


Static dato3
dato3 += 1
ListBox3.Items.Add(dato3)
End Sub
End Class
Nota. Cuando no se asigna un valor a la variable
declarada, el valor inicial es 0 (cero).

45
Luis Zedler Espinoza Claro
4) Variables con tipo de dato definido.
Public Class FrmTipoDatos
Private Sub Button1_Click()
Dim edad As Byte ' enteros
edad = 29
TextBox1.Text = edad
End Sub
Private Sub Button2_Click
Dim ganancias As Integer 'valor
' inicial es cero
ganancias = 1977.11
TextBox2.Text = ganancias
End Sub
Private Sub Button3_Click()
Dim distancia As Single = 99336435
TextBox3.Text = distancia
REM single trabaja con 7 cifras y
'decimales, Double con 15 cifras.
End Sub
Private Sub Button4_Click()
Dim nombres As String = "Isabel"
Dim apellidos As String = "Rojas"
TextBox4.Text = nombres + " " + _
apellidos
'En una variable string el valor
' inicial es empty
End Sub
End Class

46
Visual Basic .NET
Otro ejemplo de variables con tipo de dato definido
Public Class FrmTipoDatos2
Private Sub Button1_Click()
Dim v_estado As Boolean
'El valor de v_estado es false.
MessageBox.Show(v_estado)
V_estado = True
TextBox1.Text = v_estado
End Sub
Private Sub Button2_Click()
Dim fecha As Date
'representa fecha y hora.
fecha = Now()
TextBox2.Text = fecha.Date
'muestra sola la fecha.
End Sub
Private Sub Button3_Click()
Dim abc As Object
'Puede ser un textBox, conexion
'a bd, video, etc.
abc = ListBox1
'=tabla, hoja de excel, celda,
'o diapositiva
abc.items.add("Hola")
abc.left += 10 'abc.top += 10
End Sub
Private Sub Button4_Click
Dim L1 As ListBox
L1 = ListBox1
L1.Items.Add("Buenos Dias")
End Sub
End Class

47
Luis Zedler Espinoza Claro
Constantes.
Una constante es un nombre significativo que constituye
a un número o a una cadena que no varia, aunque una
constante
recuerda
ligeramente
a una
variable, no
se puede
modificar a
una
constante o
asignarle un
valor nuevo
como ocurre
con una
variable.

Public Class FrmConstantes


Public Const ventatotal As Single = 650.0
Const fechapago = #11/10/2008#
Public Const NroCTA = "19312926853025"
Public Const Empresa = "Export TAURIJA"

Private Sub Button1_Click()


TextBox1.Text = ventatotal
TextBox2.Text = ventatotal * 19 / 100
TextBox3.Text = fechapago
TextBox4.Text = NroCTA
TextBox5.Text = Empresa
End Sub
End Class

48
Visual Basic .NET
Operadores.
Los operadores con códigos que realizan operaciones
entre 2 o mas elementos y devuelven un valor. Estas
operaciones pueden ser aritméticas, concatenación,
comparación, lógicos.
Ejemplo. (Diseñe y desarrolle el siguiente Form)

Public Class basicos


Dim op1 As Single,op2 As Single

Private Sub btnsuma_Click


op1 = Val(TextBox1.Text)
op2 = Val(TextBox2.Text)
TextBox3.Text = op1 + op2
End Sub
Private Sub btncerrar_Click()
Me.Close()
End Sub
End Class

49
Luis Zedler Espinoza Claro
Ejercicio. Diseñe y desarrolle el siguiente formulario
utilizando los operadores aritméticos.

Public Class frmbasico


Dim op1, op2 As Single

Private Sub btnPotencia_Click()


op1 = Val(TextBox1.Text)
op2 = Val(TextBox2.Text)
TextBox3.Text = op1 ^ op2
End Sub

Private Sub btnResto_Click()


op1 = Val(TextBox1.Text)
op2 = Val(TextBox2.Text)
TextBox3.Text = op1 Mod op2
End Sub

50
Visual Basic .NET
Private Sub btnDivisionE_Click()
op1 = Val(TextBox1.Text)
op2 = Val(TextBox2.Text)
TextBox3.Text = op1 \ op2
End Sub

Private Sub btnCerrar_Click()


Me.Close()
End Sub

End Class

Los operadores de comparación realizan operaciones


con datos de tipo Boolean. Y dan como resultado
verdadero o falso (True o false respectivamente).
El siguiente ejemplo permitirá comparar si el segundo
texto es igual al primero. El resultado de la comparación
se mostrara a través de un mensaje.

El operador Like, permite comparar si el segundo texto


esta iniciando correctamente con referencia al segundo
texto, use * (Asterisco) como se ve en la imagen del
ejemplo

51
Luis Zedler Espinoza Claro
Public Class logicos
Dim z As Boolean
Dim txt1, txt2 As String

Private Sub Button1_Click(s)


txt1 = TextBox1.Text
txt2 = TextBox2.Text
z = txt1 Like txt2
MessageBox.Show(z)
End Sub
End Class

52
Visual Basic .NET
UNIDAD III

Estructuras de Control, Simple, Doble,


Anidado y Múltiple

53
Luis Zedler Espinoza Claro
Estructuras de control.
Estructuras de control.- La mayor eficacia y utilidad de
cualquier algoritmo dentro de un lenguaje de
programación esta en la posibilidad de cambiar el orden
de ejecución con instrucciones de control y bucles. Estas
instrucciones nos permiten tomar decisiones y repetir
acciones.
Estructuras de decisión.- Estas estructuras nos
permiten probar ciertas condiciones para realizar
determinadas instrucciones u operaciones en función a
los resultados de la prueba, teniendo en cuenta que esta
prueba puede ser verdadera o falsa (Boolean).
Sintaxis de estructuras de decisión:

1) Simple 2) Doble
If <condición> Then
If <condición> Then <Instrucción X>
<Instrucción> Else
End if <instrucción Y>
End if

3) Anidado
If <condiciónA> Then
<instrucción X>
ElseIf <condiciónB> Then
<instrucción Y>
Else
<instrucción Z>
End if
End if

54
Visual Basic .NET
Simples:

Las estructuras condicionales simples se les conocen


como “Tomas de decisión”. Estas tomas de decisión
tienen la siguiente forma:

Diagrama:

SI
CONDICIÓN

NO Instrucciones a realizar
si la condición es verdad

Pseudocódigo:

Si <condición > Entonces


<Instrucción>
Fin-Si
Sintaxis en .Net

If <condición> Then
<Instrucción>
End if

55
Luis Zedler Espinoza Claro
Ejemplo: Crear una aplicación que permita registrar los
empleados de una determinada empresa, los datos a registrar
son; Nombres completos, Cargo (lista de cargos) y Sueldo.

Criterios que tendremos en cuenta para el desarrollo:


• Diseñe la interface (vea la imagen del ejemplo).
• Para poder seleccionar un cargo deberá ingresar el
nombre del empleado, de lo contrario se deshabilitara
el cuadro de lista de cargos.
• Cuando seleccione un cargo ocurrirá lo siguiente:
Se asignara un sueldo:
Si es Administrador =2500
Si es Contador =1800
Si es Secretaria =850
Si es Auxiliar =650
Se habilitará el botón Agregar.
• Para poder agregar al listado, se debe verificar, si se
ingreso el nombre del empleado.
• Cuando agregue un empleado al listado debe limpiar
los datos y deshabilitar el botón agregar.

56
Visual Basic .NET
Public Class FrmSimple

Private Sub FrmSimple_Load()


BtnAgregar.Enabled = False
CbCargo.Enabled = False
txtSueldo.Enabled = False
End Sub

Private Sub CbCargo_SelectedIndexChanged()


'declaramos variables para cargo y sueldo
Dim cargo As String
Dim sueldo As Single
'asignamos el cargo seleccionado a la variable cargo
cargo = CbCargo.Text
'asignamos un sueldo teniendo en cuenta la condision
If cargo = "Administrador" Then
sueldo = 2500
End If
If cargo = "Contador" Then
sueldo = 1800
End If
If cargo = "Secretaria" Then
sueldo = 850
End If
If cargo = "Auxiliar" Then
sueldo = 650
End If
txtSueldo.Text = sueldo
'habilitar el boton agregar
BtnAgregar.Enabled = True
End Sub

Private Sub TxtNombre_TextChanged()


If TxtNombre.Text.Length > 4 Then
CbCargo.Enabled = True
End If
If TxtNombre.Text.Length = 0 Then
CbCargo.Enabled = False
End If
End Sub

57
Luis Zedler Espinoza Claro
Private Sub BtnAgregar_Click()
'decalramos variables para los datos.
Dim nom, car, sue As String
'asignamos datos a las variables.
nom = TxtNombre.Text
car = " es: " & CbCargo.Text
sue = " y gana : " & txtSueldo.Text
'agregamos elementos al listado si tienes un nombre.
If nom <> "" Then
LbLista.Items.Add(nom & car & sue)
'limpiar los datos agregados
TxtNombre.Text = ""
CbCargo.Text = ""
txtSueldo.Text = ""
CbCargo.Enabled = False
BtnAgregar.Enabled = False
End If
End Sub
'Codifique los botones Eliminar, Borrar y Cerrar.
End Class

58
Visual Basic .NET
Dobles:
Las estructuras condicionales dobles permiten elegir
entre dos opciones o alternativas posibles en función del
cumplimiento o no de una determinada condición.
Diagrama de flujo:

NO SI
CONDICIÓN

Instrucciones a realizar Instrucciones a realizar


si la condición es falsa si la condición es verdad

Pseudocódigo:
Si <condición > Entonces
<Instrucción x>
Si no
<Instrucción y>
Fin-Si
Sintaxis en .Net
If <condición> Then
<Instrucción>
Else
<Instrucción>
End if

59
Luis Zedler Espinoza Claro
Ejemplo.- Crear una aplicación para calcular las
remuneraciones de un postulante a un determinado
empleo; se ofrecen 2 sueldos, si es por Contratado S/.
1500, si fuese Nombrado S/. 2000.
El TextBox de Sueldo básico debe estar con la propiedad
ReadOnly=True.
Se tendrá en cuenta 2 posibles descuentos:
AFP obligatorio, cada RadioButton debe tener en su
propiedad Tag un numero que equivale al porcentaje de
descuento por AFP (Horizonte=12, Integra=11,
Prima=10, ONP=9).
Seguro de vida (S/. 5) opcional.
Asignación Familiar (S/. 50) Opcional.

Código fuente. (Nótese que a los objetos se les cambio


de nombre)

60
Visual Basic .NET
Sabiendo que Handles nos permite indicar con que
objeto y que evento se ejecutara un determinado evento,
codificaremos en el Radiobutton Nombrado, evento
CheckedChanged

Private Sub rbNombrado_CheckedChanged()_


Handles rbNombrado.CheckedChanged, _
rbContratado.CheckedChanged
If rbNombrado.Checked = True Then
txtSbasico.Text = 2000
Else
txtSbasico.Text = 1500
End If
End Sub
Codificamos las opciones de AFP (Nótese los Objetos y
eventos seguido del Handles).
Private Sub _
rbHorizonte_CheckedChanged(ByVal sender _
As System.Object, ByVal e As _
System.EventArgs) Handles _
rbHorizonte.CheckedChanged, _
rbIntegra.CheckedChanged, _
rbPrima.CheckedChanged, _
rbONP.CheckedChanged
Dim afp, basico As Single
basico = Val(txtSbasico.Text)
'Cojemos el dato del radioButton.
afp = sender.tag.ToString
txtafp.Text = basico * afp / 100
End Sub

61
Luis Zedler Espinoza Claro
A continuación codificamos la casilla de verificación de
Seguro de Vida.
Private Sub chkSvida_CheckedChanged()
If chkSvida.Checked = True Then
txtSvida.Text = 5
Else
txtSvida.Text = 0
End If
End Sub

Codificamos la casilla de verificación de Asignación


Familiar.
Private Sub chkasignacion_CheckedChanged()
If chkasignacion.Checked = True Then
txtasignacion.Text = 50
Else
txtasignacion.Text = 0
End If
End Sub

Codificamos el botón Calcular


Private Sub btnCalcular_Click()
Dim basico, afp, vida, asignacion _
As Single
basico = Val(txtSbasico.Text)
afp = Val(txtafp.Text)
vida = Val(txtSvida.Text)
asignacion = Val(txtasignacion.Text)
txtneto.Text = basico - afp - vida + asignacion
End Sub

El botón otro debe limpiar los TextBox.


El botón cerrar debe permitir a salir de la aplicación.

62
Visual Basic .NET
Anidado:
Son tomas de decisiones especializadas que permiten
comparar una variable contra distinta posibles resultados,
ejecutando para cada caso una serie de instrucciones
específicas.

Diagrama de flujo:

SI
Condición 1
Instrucciones si la
condición es verdad
NO
SI Instrucciones si la
Condición 2
condición es verdad

Instrucciones si la
NO
condición es verdad
SI

SI
Condición 3 Condición 4

NO

NO Instrucciones si la
condición es Falso

SI Instrucciones si la
Condición 5
condición es verdad
NO

63
Luis Zedler Espinoza Claro
Estas estructuras nos permiten realizar o ejecutar
condiciones unas dentro de otras, teniendo en cuenta si
es verdad o falso la condición anterior.
Es decir si la condición anterior fue verdad puedo
determinar una condición o instrucción y si es falsa otra
condición u instrucción.

Pseudocódigo del diagrama anterior:


Si <condición1 > Entonces
<Instrucción x>
Si no
Si <condición 2> Entonces
<Instrucción Y>
Si no
Si <condición 3> Entonces
Si <condición 4> Entonces
<Instrucción M>
Si no
<Instrucción N>
Fin-Si
Si no
Si <condición 5> Entonces
<Instrucción A>
Si no
<Instrucción B>
Fin-Si
Fin-Si
Fin-Si
Fin-Si
Nota. Estas instrucciones pueden continuar así una tras otra.

64
Visual Basic .NET
Sintaxis en .Net (del diagrama anterior)

If <condición> Then
<Instrucción>
Else
If <condición> Then
<Instrucción>
Else
If <condición> Then
If <condición> Then
<Instrucción>
Else
<Instrucción>
End if
Else
If <condición> Then
<Instrucción>
Else
<Instrucción>
End if
End if
End if
End if

65
Luis Zedler Espinoza Claro
Ejemplo. Crear una aplicación donde se ingresen los
datos de un alumno (como se ve en la imagen del
formulario).

Verificar los datos de edad, estatura y peso a través de


un botón (Verificar datos).
Si los datos son correctos se activara el botón “Agregar
datos” para poder agregar la información al recuadro de
texto.

Private Sub frmbasico8_Load()


btnAgregar.Enabled = False
End Sub

66
Visual Basic .NET
El código anterior permite desactivar el botón “verificar
datos”, desde el inicio de ejecución del programa.

Public Class frmbasico8


'declaramos una variable para una cantidad
Dim cantidad As Byte = 1
Private Sub btnVerificar_Click()
'preguntar, si NO es numero la edad
If Not (IsNumeric(txtedad.Text)) Then
MsgBox("ingrese edad correcta")
txtedad.Focus()
'si no, preguntar, si NO es nro. la estatura
ElseIf Not _
(IsNumeric(txtestatura.Text)) Then
MsgBox("Estatura Incorrecto")
txtestatura.Focus()
'si no, preguntar, si NO es nro. el peso
ElseIf Not _
(IsNumeric(txtpeso.Text)) Then
MsgBox("Peso Incorrecto")
txtpeso.Focus()
'si no ocurrio ninguno de los anteiores
Else
MsgBox("Datos correctos")
btnVerificar.Enabled = False
btnAgregar.Enabled = True
End If
End Sub
Nota. Se usa ElseIf para evitar repetir el cierre de End If

67
Luis Zedler Espinoza Claro
Private Sub btnAgregar_Click() Handles _
btnAgregar.Click
Dim txt As String
txt = RichTextBox1.Text.Trim
RichTextBox1.Text = txt & Chr(13) & _
cantidad & ") " & txtnombre.Text
txtnombre.Clear()
txtedad.Clear()
txtestatura.Clear()
txtpeso.Clear()
cantidad += 1
btnVerificar.Enabled = True
btnAgregar.Enabled = False
End Sub
End Class

Práctica Dirigida.- Crear un nuevo Proyecto (Sistema) y


agregue los siguientes controles al formulario1
(Seguridad); Label, TextBox y Button. Cambiar las
propiedades según lo indicado en el siguiente recuadro.

68
Visual Basic .NET
Propiedades del formulario1 y obetos.

Objeto Propiedad Valor


Text Usuario
Label1 Forecolor Blue
Text Contraseña
Label2 Forecolor Blue
Name Txtusuario
TextBox1 CharacterCasing Upper
Maxlength 11
TabIndex 1
Name Txtclave
TextBox2 PasswordChar ©
Name btcAceptar
Button1 Text &Aceptar
Name btcSalir
Button2 Text &Salir
Name Frmseguridad
aceptbutton
Cancelbutton btcSalir
MaxinumSize 300; 200
Form1 Opacity 90%
ShowInTaskbar False
StartPosition CenterScreen
Text Seguridad del
sistema
Agregue un formulario(2) al propyecto y asignele un
nombre (menuprincipal). Este formulario se observara
solo si los datos del usuario y contraseña son correctos.
Usuario: LUIS
Contraseña: ESPINOZA

69
Luis Zedler Espinoza Claro
Codigo fuente del formulario seguridad.
Public Class Sistema
Boton aceptar
Private Sub btcAceptar_Click() Handles _
btcAceptar.Click
'preguntar si el usuario es correcto
If Trim(txtusuario.Text) = "LUIS" Then
'preguntar si la contraseña es correcto
If Trim(txtclave.Text) = "ESPINOZA" Then
'si todo correcto, mostrar un mensaje
MessageBox.Show("Bienvenido al Sistema" _
+ txtusuario.Text)
'mostrar el otro formulario (menuprincipal)
menuprincipal.Show()
'Oculpar el formulario seguridad
Me.Hide()
Else 'si la clave no es correcto
MessageBox.Show("Clave Incorrecta")
txtclave.Clear()
txtclave.Focus()
End If
Else 'si el usuario no es correcto
MessageBox.Show("Nombre Incorrecto")
txtusuario.Clear()
txtusuario.Focus()
End If
End Sub
Boton Salir
Private Sub btcSalir_Click() Handles _
btcSalir.Click
cerrarsistema()
End Sub

70
Visual Basic .NET
Recuadro de usuario con el evento Keypress
Private Sub txtusuario_KeyPress
'si preciona la tecla enter
If Asc(e.KeyChar) = 13 Then
'mostrar el cursor en el recuadro clave
txtclave.Focus()
End If
End Sub

Crear un procedimiento “cerrarsistema”,


dentro de la clase Sistema. El mismo que
es invocado desde el boton salir.

Sub cerrarsistema()
Dim respuesta As Integer
respuesta = MessageBox.Show _
("Desea salir del sistema", _
"Cerrar Sistema", _
MessageBoxButtons.YesNo)
If respuesta = vbYes Then
Application.Exit()‘cierra todo
End If
End Sub
End Class
Notas.
Me.close()
Me, Se refiere al formulario u objeto actual.
Close, cierra el formulario actual.
Application.exit(), cierra todo la aplicación.

71
Luis Zedler Espinoza Claro
Select case

Cuando existen varios valores diferentes o posibles


valores dentro de un mismo objeto o variable,
utilizaremos la instrucción SELECT CASE Para evitar
múltiples If… Then…. Else…, select case toma el dato
de una variable u objeto y lo evalúa o compara en
cualquier caso, de no encontrar coincidencia se
ejecutara el CASE ELSE.

Diagrama de flujo:

Caso 1 Si no
Expresión
Caso 2
Caso N

Caso 3

Instrucción 1 Instrucción 3
Instrucción 2 Instrucción N
Instrucción

72
Visual Basic .NET
Pseudocódigo:

Seleccione <expresion> de casos


Caso 1
<Instrucción 1>
Caso 2
<Instrucción 2>
Caso 3
<Instrucción 2>
Caso N
<Instrucción N>

Caso Si no es ningún anterior
<Instrucción>
Fin-Selección

Sintaxis:
Select Case <Variable u objeto>
Case opcion 1
Instrucción 1
Case opcion 2
Instrucción 1
Case opcion 3
Instrucción 1
Case opcion N
Instrucción N
Case Else
Instrucción
End Select

73
Luis Zedler Espinoza Claro
Ejemplo: diseñe la siguiente interface e interprete el
código fuente.

Private Sub lbcursos_DoubleClick()


'declaramos variables para cursos y precio
Dim curso As String, precio As Single
'asignamos el curso seleccionado de la lista
'a la variable curso
curso = lbcursos.Text
'seleccionamos la variable curso
Select Case curso
Case "Natación"
'En el caso que el curso sea Natación
'asignamos un monto al precio
precio = 100
Case "Futbol"
'En el caso que el curso sea Futbol
'asignamos otro monto al precio
precio = 50
Case "Voley"
precio = 30
Case "Karate"
precio = 80
Case "Danza"

74
Visual Basic .NET
precio = 40
Case "Guitarra"
precio = 60
Case "Teatro"
precio = 70
'En este ejemplo no tenemos un CaseElse
End Select
'dar un formato de numero al precio que se
'se muestra en el TextBox con 2 decimales.
txtcosto.Text = FormatNumber(precio, 2)
End Sub

Código fuente del objeto que contiene la edad del


postulante al curso de verano, control NumericUpDown,
Evento valuechanged.

Private Sub NUDedad_ValueChanged()

'Declaramos una variable para la edad y descuento


Dim edad As Byte, desc As Short
'asignamos un dato a la variable edad
edad = NUDedad.Value
Select Case edad
Case Is <= 12
'En el caso que la edad sea menor igual a 12
'le asignamos un descuento
desc = 50
Case 13 To 18
'En el caso que la edad este entre 13 y 18
'le asignamos otro descuento
desc = 15
Case 19, 20
'En el caso que la edad sea 19 o 20
'le asignamos otro descuento
desc = 8

75
Luis Zedler Espinoza Claro
Case 21 To 25
desc = 3
Case Else
'si no es ninguno de los anteriores
'le asignamos otro descuento
desc = 1
End Select
'Verificar si tiene un precio el curso
If txtcosto.Text.Length > 0 Then
'Declarar y asignar una variable para el costo
Dim costo As Single = Val(txtcosto.Text)
'Calcular el descuento
txtdesc.Text = costo * desc / 100
'Calcular el neto a pagar
txtneto.Text = costo - txtdesc.Text
End If

End Sub

Definiciones:

Case Is <= 12 .- Indica que si la variable


edad es (Is) menor igual que 12. Is,
permite usar operadores de comparacion.

Case 13 To 18 .- Indica si la variable


contiene un valor desde 13 hasta (To) 14,
esto es aplicable para rangos numericos.

Case 19, 20 .- Indica si la variable


tubiese un valor 19 o (,) 20.

76
Visual Basic .NET
UNIDAD IV

Bucles y Matrices
Procedimientos y Funciones de usuario
Manejo de excepciones y errores
Cuadros de dialogo, MDI y Menús

77
Luis Zedler Espinoza Claro
Estructuras de Bucles
Permiten ejecutar una o más instrucciones
repetitivamente hasta que un criterio o condición sea
verdadera, las instrucciones repetitivas son las
siguientes:
While……….. End While
Do ……………Loop (While con condición True y
Until con condición False)
For ………….. Next
For Each …… Next
While… End While.- Comprueba siempre la condición
antes de iniciar el bucle. La instrucción del bucle
continua mientras el valor de la condición o criterio sea
verdadero (True).
Do… Loop.- Es otra estructura condicional repetitiva que
se ejecuta al comparar 2 valores y teniendo en cuenta el
resultado lógico True o False, agregando instrucciones
While y Until, estas instrucciones pueden utilizarse para
comprobar la condición en un bucle Do… Loop, pueden
comprobar la condición antes de entrar al bucle o
después de que el bucle se haya ejecutado al menos
una vez. En el caso del while el bucle se ejecutara
mientras la condición permanezca en True. En el
caso de Until el bucle se ejecutara mientras la
condición permanezca en False.
For … Next.- Es una instrucción repetitiva que utiliza una
variable numérica denominada Counter cuyo valor
aumenta o disminuye cada vez q se repite el bucle, esta
variable tiene un inicio (Start) , un final (End) y un
incremento o decremento con la instrucción STEP .

78
Visual Basic .NET
Ejemplo de Bucles.
Crear una aplicación con un formulario llamado
FrmBucles donde agregaremos un ListBox (Lb) y 5
Button, dentro de la clase crearemos una matriz de datos
(Sueldo), el en evento Load del formulario asignaremos
los datos a la matriz sueldo.

Public Class FrmBucles


'Declaramos una matriz para 5 datos.
Dim sueldo(4) As Single
Private Sub FrmBucleFor_Load ()
'Asignamos datos a la matriz sueldo.
'La matriz inicia desde 0 (cero).
sueldo(0) = 1800
sueldo(1) = 950
sueldo(2) = 600
'si no asigno un dato a sueldo(3), sera =0
sueldo(4) = 1200
End Sub

79
Luis Zedler Espinoza Claro
'Boton While
Private Sub BtnWhile_Click()
Dim i As Integer
Lb.Items.Clear()
While i < 5
Lb.Items.Add(sueldo(i))
i += 1
End While
End Sub

Definiciones:
• En la primera línea del código fuente anterior
declaramos una variable entera (i), esta variable
nos permitirá navegar dentro de la matriz (sueldo).
• While i < 5 .- Esto indica; mientras (i) sea menor
que 5, para indicar que el contador no pase de 4,
puesto que la matriz contiene desde 0 hasta 4.
• Lb.Items.Add(sueldo(i)).- Permite agregar el
dato de la matriz correspondiente al listado.
• i += 1 .- Permite incrementar la Variable que
navegara dentro de la matriz. Recuerde que el valor
inicial de una variable numérica es =0 (cero).

'Boton Do Loop While


Private Sub BtnDoWhile_Click()
Dim i As Byte
Lb.Items.Clear()
Do 'While i < 5
Lb.Items.Add(sueldo(i))
i += 1
Loop While i < 5
End Sub

80
Visual Basic .NET
'Boton Do Loop Until
Private Sub BtnDoUntil_Click()
Dim i As Byte
Lb.Items.Clear()
Do Until i = 5
Lb.Items.Add(sueldo(i))
i += 1
Loop 'Until i = 5
End Sub

'Boton For
Private Sub btnForNext_Click()
Dim i As Integer
Lb.Items.Clear()
For i = 0 To 4 Step 2
Lb.Items.Add(sueldo(i))
Next i
End Sub

'Boton For Each


Private Sub btnForEach_Click()
Dim abc As Object
Lb.Items.Clear()
For Each abc In sueldo
Lb.Items.Add(abc)
Next abc
End Sub

End Class

Ejecute el formulario para observar las diferencias y


similitudes entre los 5 bucles o ciclos.

81
Luis Zedler Espinoza Claro
Ejemplo de matriz de datos.
Crearemos una aplicación muy similar al ejemplo
anterior, donde la matriz de datos será indefinida,
además usaremos la instrucción ReDim cada vez que
necesitemos cambiar los datos de la matriz.

Public Class FrmReDim

'Declaramos una matriz de datos indefinida.


Dim SUELDO() As Single
Private Sub FrmReDim_Load()
'Definimos la matriz sueldo para 4 datos.
ReDim SUELDO(3)
SUELDO(0) = 1200
SUELDO(1) = 890
SUELDO(2) = 1100
SUELDO(3) = 1400
End Sub

82
Visual Basic .NET
Private Sub BtnVer_Click()
Dim QW As Object
Lb.Items.Clear()
For Each QW In SUELDO
Lb.Items.Add(QW)
Next
End Sub
Private Sub BtnAgregarData_Click()
ReDim SUELDO(6)
SUELDO(4) = 444
SUELDO(5) = 555
SUELDO(6) = 666
End Sub
Private Sub Button3_Click()
ReDim SUELDO(5)
SUELDO(4) = 400
SUELDO(5) = 500
End Sub
End Class
Salir de un bucle antes que supere su valor final.
El comando o instrucción Exit permite salir directamente
de cualquier estructura de decisión, ya sea bucle o
procedimiento:

Exit Do Exit Try


Exit For Exit Sub
Exit While Exit Function
Exit Select Exit Property

83
Luis Zedler Espinoza Claro
Procedimientos y funciones de Usuario.
Un procedimiento es un algoritmo de instrucciones con
un ámbito de declaración, con su respectivo nombre y el
final del procedimiento, dentro del cual se encuentra el
procedimiento o instrucciones.
A un procedimiento se le invoca por su nombre de
diferentes partes del proyecto o aplicación teniendo en
cuenta su ámbito de declaración.
Visual Basic nos permite utilizar los diferentes tipos de
procedimientos:
Subrutinas (Sub), son simples procedimientos
que ejecutan una o más instrucciones pero no
devuelven ningún valor al ser invocados.
Funciones, las funciones devuelven un valor con
un tipo de dato específico.
De eventos, son procedimientos de control de
eventos, se ejecutan en respuesta a una acción
del usuario en un determinado momento del
programa.
De propiedades, devuelven o asignan valores de
propiedades en objetos o módulos.

Sintaxis:
Public Sub <Nombre Proced.> (Lista de parámetros)
<Instrucciones>
End Sub
Private Sub <Nombre Proced.> (Lista de parámetros)
<Instrucciones>
End Sub

84
Visual Basic .NET
Friend Sub <Nombre Proced.> (Lista de parámetros)
<Instrucciones>
End Sub
Definiciones:
Public/ Private/ Friend: indica el ámbito del
procedimiento.
Sub: indica que es un procedimiento de instrucciones.

Ejemplo 1. En el siguiente ejemplo crearemos 2


procedimientos:
El primero permitirá evaluar si un alumno aprobó o desaprobó,
teniendo en cuenta su nota de promedio final.
El segundo procedimiento nos permitirá limpiar todos los
TextBox de un determinado formulario.
Estos procedimientos serán creados dentro de Module1.

Desarrollo:
Crear una aplicación donde se ingrese el nombre de un
alumno y su nota de promedio.

Agregar un modulo a la aplicación.


Menú Proyecto.
Agregar Modulo
Aparece la ventana de “Agregar nuevo elemento”,
donde debe seleccionar modulo.
En nombre del modulo aparece como Molude1.VB, si desea
puede cambiar el nombre.

Finalmente haga clic en el botón Agregar.

85
Luis Zedler Espinoza Claro
Observe que en el explorador de soluciones aparece un
archivo llamado Module1.VB y al lado izquierdo la ventana de
código donde codificaremos nuestras funciones.

Module Module1
'Creamos el primer procedimiento
Public Sub verobs(ByVal nota As Byte)
If nota >= 10.5 Then
MessageBox.Show("Alumno aprobado con" & _
vbNewLine & _
nota.ToString, "Felicitaciones", _
MessageBoxButtons.OK)
Else
MessageBox.Show("Desaprobado con" & _
Chr(13) & _
nota.ToString, "Siga Intentandolo",
_MessageBoxButtons.OK)
End If
End Sub
Definiciones:
El procedimiento creado con el código fuente anterior, tiene el
nombre de Verobs.
El procedimiento verobs tiene un parámetro de entrada, este
parámetro tiene el nombre de nota. A través de este
parámetro ingresamos la nota al procedimiento, donde será
evaluado como aprobado o desaprobado.

86
Visual Basic .NET
'Crear un proced. para limpiar los TextBox
Public Sub limpiarTXT(ByVal Formulario _
As Form)
Dim x As Control
For Each x In Formulario.Controls
If TypeOf x Is TextBox Then
x.Text = ""
x.Focus()
End If
Next
End Sub
End Module
Diseño del formulario

'Llamar al proced. desde el boton evaluar


Private Sub BtnEvaluar_Click
verobs(Val(TxtNota.Text))
End Sub
'Invocar al proced. limpiarTXT
Private Sub BtnNuevo_Click
limpiarTXT (me)
End Sub
Nota. En el recuadro del mensaje se muestra el
resultado del procedimiento verobs, que es
ejecutado desde el boton Evaluar del formulario.

87
Luis Zedler Espinoza Claro
Ejemplo 2. Crear 2 procedimientos uno nos permitirá
habilitar los TextBox y el otro deshabilitar, estos
procedimientos servirán para cualquier formulario de una
aplicación.
Los procedimientos deberán ser codificados dentro de un
modulo al menos para este ejemplo.
Public Sub deshabilitarTXT(ByVal
formulario As System.Windows.Forms.Form)
Dim x As Control
For Each x In formulario.Controls
If TypeOf x Is TextBox Then
x.Enabled = False
x.BackColor = Color.White
End If
Next
End Sub

Public Sub habilitarTXT(ByVal formulario


As System.Windows.Forms.Form)
Dim x As Control
For Each x In formulario.Controls
If TypeOf x Is TextBox Then
x.Enabled = True
End If
Next
End Sub
Nota. Los procedimientos tienen como parámetro de
entrada un objeto Form, para se indicar el nombre del
formulario donde se esta ejecutando el procedimiento.
Interprete y analice las rutinas demás código fuente.

88
Visual Basic .NET
Ejemplo de Funciones. Crear 2 funciones, la primera
deberá sumar los valores de todos los TextBox, la
segunda función deberá sumar todos los números de un
listado.
'Sumar TextBox
Function SumarTodoTXT(ByVal f As
System.Windows.Forms.Form) As Single
Dim t As Control
For Each t In f.Controls
If TypeOf t Is TextBox Then
SumarTodoTXT += Val(t.Text)
End If
Next
End Function

'Sumar un Listado
Function Sumarlistado(ByVal f As Form,
ByVal lista As ListBox) As Single
Dim t As Byte, n As Single
For t = 0 To lista.Items.Count – 1
n = lista.Items.Item(t)
Sumarlistado += n
Next
End Function
Nota. Recuerde que el codigo fuente de procedimientos
y funciones se debe crear en objetos Clases o Módulos,
para poder invocar o llamar desde cualquier formulario.

A continuación crearemos una interface para usar las


funciones creados…

89
Luis Zedler Espinoza Claro
Diseño del formulario

'Invocamos a la funcion desde un Boton


Private Sub BtnSumList_Click()
Dim suma As Single
suma = Sumarlistado(Me, ListBox1)
MsgBox(suma.ToString, _
MsgBoxStyle.Information, "Funciones")
End Sub

El resultado en ambos casos del ejemplo


se muestra en un recuadro de mensaje.

Private Sub
BtnSumList_Click()
Dim suma As Single
suma = SumarTodoTXT(Me)
MsgBox(suma.ToString, _
MsgBoxStyle.Information, "Funciones")
End Sub

90
Visual Basic .NET
Ejercicio. Crear una función que permita recibir 3
valores numéricos, donde el primero y segundo valor
deben ser obligatorios y el tercero opcional con un valor
predeterminado = 100, para luego sumarlos.
Function Sumar3(ByVal a As Single, _
ByVal b As Single, _
Optional ByVal c As Single = 100) As Single
'la variable C tiene un valor inicial 100
Return a + b + c
End Function

Como usar la funcion anterior, vea…


TextBox2.Text = suma3(4, 5)
'el tercer parametro C es 100  109
TextBox2.Text = suma3(4, 5, 2)
'el dato 2 reemplaza a 100  11
Ejercicio. Crear una función que permita recibir X
valores, para luego sumarlos.
Function SumaNros(ByVal ParamArray _
numeros()) As Single
Dim abc As Object
Dim total As Single
For Each abc In numeros
total += abc
Next abc
Return total
End Function
REM puede recibir infinitos numeros
TextBox5.Text = suma3(4, 5, 1, 4, 4, 2)

91
Luis Zedler Espinoza Claro
Es un cuadro de imagen para mostrar imágenes de diferentes
formatos. Vea el siguiente ejemplo.
Con el siguiente ejercicio, veremos como usar los controles
PictureBox y TrackBar y validaremos uno de los cuadros de
texto usando la estructura Try.
La imagen del ejemplo muestra el control Picturebox con su
ventana de tareas, donde se puede elegir una imagen,
especificar el modo de tamaño, etc.

Es otro de los controles que usaremos en el ejemplo, agregue


al formulario y cambie las siguientes propiedades:
LargeChange=2 Maximum= 10 Minimum= -10
SmallChange=2 TickFrequency=2 TickStyle=Both
Vea las definiciones de las propiedades mencionadas en la parte
inferior de la ventana de propiedades.

92
Visual Basic .NET
Código fuente del ejemplo anterior
Public Class FrmEjm
Private Sub TrackBar1_Scroll()
Dim L, U, I, S As Integer
L = TrackBar1.Value
U = TextBox1.Text
I = PictureBox1.Left
S = L
TextBox1.Text = L
'Dar movimiento a la imagen
If L > U Then
PictureBox1.Left = I + 20
Else
PictureBox1.Left = I - 20
End If
End Sub

Uso de la estructura Try, para validar el cuadro de texto


donde se ingresan números de -10 hasta 10, de lo contrario
mostrar un mensaje de lo ocurrido.
Private Sub Button1_Click()
Try
'Intrucciones.
TrackBar1.Value = Val(TextBox2.Text)
Catch ex As Exception
'mensaje, si ocurrio un error
'en Instrucciones
MessageBox.Show(ex.Message)
End Try
End Sub
End Class
El valor inicial del TextBox1 en nuestro ejemplo es 0

93
Luis Zedler Espinoza Claro
Validación de Errores (Excepciones)
Los errores o excepciones se clasifican en 3 tipos:
errores de sintaxis, errores lógicos, errores en tiempo de
ejecución.
Errores de sintaxis, suceden al escribir el código fuente
como por ejemplo una instrucción mal escrita, este error se
subraya de color azul con un comentario indicando el error.
Errores lógicos, consiste en resultados inesperados o no
deseados, mandatos que debieron ejecutar un proceso sin
embargo no se ejecutan, esto ocurre también durante la
conversión de datos que no se ejecutan en determinadas
ocasiones.
Errores en tiempo de ejecución, estos errores suceden
durante la ejecución de la aplicación, no son errores de
escritura ni lógica, si no de alguna excepción del sistema,
como por ejemplo tratar de actualizar o guardar una base de
datos sin abrirla, realizar una división entera entre cero, etc.

Formas de controlar excepciones.


Control No estructurado, es mediante la sentencia On
Error Goto, que tiene las siguientes sintaxis:

On Error Resume Next:


Indica que si ocurre un error en tiempo de ejecución el flujo
continúe en la siguiente línea después de la que origino el
error.

On Error Goto <variable>:


Si ocurre un error en tiempo de ejecución, se cancela el flujo y
se ejecutan las instrucciones que están debajo de la variable,
aquí podrá personalizar los mensajes de error o excepciones.

94
Visual Basic .NET
Sintaxis:

On Error Goto <variable>


<Instrucciones>
<Variable>:
<instrucciones_si_ocurrio_un error>
Resume Next

Control de errores estructurado, es la forma mas


apropiada de controlar excepciones, se implementa
usando la estructura Try… Match… Finality. Vea la
sintaxis.

Try
<Intsrucciones>
'se ejecuta compltamente este
'bloque de codigo
'si no ocurre una excepcion
'(error)
Catch <variable> As [tipo de dato]
<Intsrucciones>
' se ejecuta este error si en
' bloque anterior ocurrio
' una excepcion(error)
Catch <variable> As [tipo de dato]
<Intsrucciones>
' se ejecuta este error si en
' bloque anterior ocurrio
' una excepcion(error)
...
End Try

95
Luis Zedler Espinoza Claro
Ejemplo. Crear una aplicación que permita buscar imágenes
dentro de un directorio y subdirectorios.

Private Sub BtnVer_Click()


Try
'SearchAllSubDirectories : incluye archivos
'de Subdirectorios
'SearchTopLevelOnly : solo del nivel actual
For Each Archivo As String In _
My.Computer.FileSystem.GetFiles( _
Txtruta.Text, _
FileIO.SearchOption.SearchAllSubDirectories, _
"*.jpg")
ListBox1.Items.Add(Archivo)
Next
Catch oe As Exception
MsgBox(oe.Message, MsgBoxStyle.Critical)
ListBox1.Items.Clear()
End Try
End Sub

96
Visual Basic .NET
Private Sub ListBox1_SelectedIndexChanged()
Try
Dim nombre As String = ListBox1.Text
PictureBox1.Image = Image.FromFile(nombre)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub

Uso de la aplicación, escriba la ruta del directorio y haga clic


en ver para mostrar los nombres de imágenes en el listado.

Si ingreso un directorio que no existe, aparece el siguiente mensaje.

97
Luis Zedler Espinoza Claro
Cuadros de Dialogo
Los cuadros de diálogo se utilizan para mostrar valores o
solicitar valores. Las versiones .net nos ofrecen la clase
MessageBox para mostrar mensajes al usuario, aunque
también se puede usar la función MsgBox de las
versiones anteriores, la función InputBox nos permitirá
solicitar valores o datos al usuario.
Sintaxis de Clase MessageBox.
MessageBox.Show(Mensaje, titulo, Botones, Icono,
Botón-predeterminado, alineación)
Los botones se pueden ingresar de la siguiente forma:
0 Ok Aceptar
1 OkCancel Aceptar y Cancelar
2 AbortRetryIgnore Anular Reintentar y Omitir
3 YesNoCancel SI, No y Cancelar
4 YesNo Si y No
5 RetryCancel Reintentar y Cancelar

Botón-Predeterminado= indica en que botón se


establecerá el focus.
Alineación= indica la alineación del titulo y del mensaje,
y otros.

Ejemplo. Diseñar la siguiente interface, asignar a la


propiedad Tag de cada RadioButton el código (Numero)
de cada Botón (1, 2, 3, 4, y 5), interprete el código
fuente.

98
Visual Basic .NET
Public Class FrmMessageBox1
'Declare 3 variables(Vea el tipo)
Dim mensaje As String
Dim titulo As String
Dim boton As System.Windows.Forms.MessageBoxButtons

'Codigo fuente del boton “mostrar mensaje”


Private Sub btnMostrar_Click()
mensaje = txtmensaje.Text
titulo = txtTitulo.Text
MessageBox.Show(mensaje, titulo, boton)
End Sub

99
Luis Zedler Espinoza Claro
Private Sub FrmMessageBox1_Load()
boton = 0
End Sub
Private Sub rb0_CheckedChanged(ByVal _
sender As System.Object, ByVal e As _
System.EventArgs) Handles _
rb0.CheckedChanged, rb1.CheckedChanged, _
rb2.CheckedChanged, rb3.CheckedChanged, _
rb4.CheckedChanged, rb5.CheckedChanged
'sender.tag del radiobuton marcado
boton = sender.tag
End Sub
End Class
Ejemplo, Crearemos una aplicación que nos muestre un
mensaje con botones e iconos.
Códigos de iconos
16 Error, Hand, Stop
48 Exclamation, Warning
64 Asterisk, Information
32 Question
0 None

100
Visual Basic .NET
Los códigos de cada Icono, se pondrá en la propiedad
Tag de cada RadioButton

Los códigos de cada Icono, se pondrá en la propiedad


Tag de cada RadioButton
Public Class FrmMessageBox2
Dim mensaje As String,Dim titulo As String
Dim boton As _
System.Windows.Forms.MessageBoxButtons
Dim icono As _
System.Windows.Forms.MessageBoxIcon
Dim botonfocus As _
System.Windows.Forms.MessageBoxDefaultButton
Dim alinea As _
System.Windows.Forms.MessageBoxOptions

Private Sub chkalineaDerecha_CheckedChanged


If chkalineaDerecha.Checked = True Then
alinea =MessageBoxOptions.RightAlign
Else
alinea =MessageBoxOptions.DefaultDesktopOnly
End If
End Sub

101
Luis Zedler Espinoza Claro
Private Sub btnMostrar_Click()
'verificar la opcion boton focus
If rb_Btn1.Checked = True Then
botonfocus = _
MessageBoxDefaultButton.Button1
ElseIf rb_btn2.Checked = True Then
botonfocus = _
MessageBoxDefaultButton.Button2
ElseIf rb_btn3.Checked = True Then
botonfocus = _
MessageBoxDefaultButton.Button3
End If
mensaje = txtmensaje.Text
titulo = txttitulo.Text
MessageBox.Show(mensaje, titulo, _
boton, icono, botonfocus, alinea)
End Sub
Private Sub rbicono1_CheckedChanged() _
Handles rbicono1.CheckedChanged, _
rbicono2.CheckedChanged, _
rbicono3.CheckedChanged, _
rbicono4.CheckedChanged, _
rbicono5.CheckedChanged
icono = sender.tag
End Sub
End Class
Valores devueltos por la clase MessageBox.
Los valores devueltos al elegir o dar clic sobre un botón
en el recuadro de mensaje se encuentran en la
enumeración DialogResult y pueden ser:

102
Visual Basic .NET
Abort; Cuando a presionado en el botón Abortar.
Cancel; Cuando a presionado en el botón
Cancelar.
Ignore; Cuando a presionado en el botón Ignorar.
No; Cuando a presionado en el botón No.
Ok; Cuando a presionado en el botón Aceptar.
Retry; Cuando a presionado en el botón
Reitentar.
Yes; Cuando a presionado en el botón Si.

Ejemplo. Crearemos una aplicación donde cada vez que


intente cerrar el formulario, nos interrogue si deseamos
salir o no del formulario o sistema. El código fuente debe
de estar en el evento FormClosing del formulario.

Private Sub FrmSistema_FormClosing()

Dim respuesta As _
Windows.Forms.DialogResult
respuesta = MessageBox.Show _
("Desea salir del sistema", _
"Cerrar Sistema", _
MessageBoxButtons.YesNo)
If respuesta = _
Windows.Forms.DialogResult.No Then
e.Cancel = True
'esto cancela el evento.
End If

End Sub

103
Luis Zedler Espinoza Claro
Function InputBox
Muestra un mensaje y un cuadro de dialogo, devuelve un
dato de tipo String con el contenido del recuadro de texto
que el usuario ingreso, si no el usuario cancelo el dato
será vacío (“”).
Sintaxis:
<Variable>=InputBox(Mensaje, Titulo, Valor predeterminado)
Private Sub Button1_Click()
Dim dato As String
dato = InputBox("Ingrese Codigo", _
"Buscar Cliente", "C0011")
End Sub

Cuadros de Dialogo.
Estos controles nos
permiten trabajar con
algunos utilitarios de
Windows como es el caso
de: la paleta de color, la
venta de abrir, la ventana
de guardar como, etc.

104
Visual Basic .NET
Ejemplo: Crear una aplicación donde podremos cambiar el
color de fondo del formulario, el color de fondo de un TextBox,
El color y tipo de fuente de un texto dentro de un textBox,
Abrir una imagen.

Pasos:
Agregar el control

Mover el TabControl desde el aspa (superior izquierda).


Agregar o quitar fichas desde la ventana de tareas.

105
Luis Zedler Espinoza Claro
Seleccione el recuadro inferior de cada ficha y cambie la
propiedad Text, de esta forma se cambia el titulo de cada
ficha del TabControl (Fuente y Abrir).

Agregar los siguientes controles de dialogo:

Public Class FrmCDialog


Private Sub btnFondoForm_Click()
'Preguntar si seleciono un color y dio clic
'en aceptar
If ColorDialog1.ShowDialog = _
Windows.Forms.DialogResult.OK Then
Me.BackColor = Me.ColorDialog1.Color
End If
End Sub
Private Sub btnFuente _Click()
If Me.FontDialog1.ShowDialog = _
Windows.Forms.DialogResult.OK Then
txtParrafo.ForeColor = Me.FontDialog1.Color
txtParrafo.Font = Me.FontDialog1.Font
End If
End Sub
Private Sub btnFondoTXT_Click()
ColorDialog1.ShowDialog()
txtParrafo.BackColor = ColorDialog1.Color
End Sub

106
Visual Basic .NET
Private Sub btnAbrir _Click()
Try
'Preguntar si seleciono una imagen y
'dio clic en aceptar
If OpenFileDialog1.ShowDialog = _
Windows.Forms.DialogResult.OK Then
'Enlazar la imagen seleccionada
'al Cuadro de iamgen (PictureBox)
PictureBox1.Image = _
Image.FromFile(OpenFileDialog1.FileName)
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
End Class

107
Luis Zedler Espinoza Claro
Validación de datos.

Validación es prevenir algunos errores en el ingreso de


datos que el usuario realice, aquí algunos aportes para
validación de datos.
Restricciones según el usuario registrado en la base de
datos, es decir clasificar a los usuarios para asignarles
privilegios según rango o cargo (habilitar y deshabilitar
opciones de menú y botones de comando).

Establecer una cantidad máxima de caracteres para los


recuadros de texto, según el tamaño del campo (Field)
de una tabla, propiedad MaxLength.

Deshabilitar (Propiedad Enabled) los recuadros de texto


para que el usuario no pueda modificar ciertos datos o
establecer su propiedad ReadOnly (de solo lectura).

Predeterminar valores solo numéricos o de texto para


ciertos recuadros según el tipo de dato requerido, para
esto usaremos el evento Keypress donde validaremos a
través de códigos ASCII.

También podemos validar para ciertos tipos de datos con


determinados controles como por ejemplo con el
DateTimePicker, MaskedTexBox, NumericUpDown,
entre otros. Vea ErrorProvider.

Ejemplo. Crear una aplicación donde se registren los


datos de un empleado, usaremos objetos de formato de

108
Visual Basic .NET
fecha para evitar que el usuario ingrese datos incorrectos
al sistema.

Public Class FrmValidacion


Private Sub MonthCalendar1_DateChanged()
Handles MonthCalendar1.DateChanged
txtFechaIngr.Text = _
Me.MonthCalendar1.SelectionRange.Start
End Sub

Private Sub BtnVerificar_Click()


codigo()
txtDia.Text = Format(DTPfecha.Value, "dddd")
txtMes.Text = Format(DTPfecha.Value, "MMMM")
txtYear.Text = DTPfecha.Value.Year
'Format(fecha, "hh:mm:ss tt")
txtEdad.Text =
Microsoft.VisualBasic.DateDiff(DateInterva
l.Year, DTPfecha.Value, Now.Date)
sodiaco()
End Sub

109
Luis Zedler Espinoza Claro
Private Sub codigo()
Dim nombre, ini, mes, anio, fin As String
nombre = txtNombre.Text.Trim.ToUpper
ini = Microsoft.VisualBasic.Left(nombre, 2)
mes = Me.DTPfecha.Value.Month.ToString
anio = _
MonthCalendar1.SelectionRange.Start.Year.ToString
fin = Microsoft.VisualBasic.Right(nombre, 2)
txtcodigo.Text = ini + mes & anio & fin
End Sub
'Crear un procedimeinto que permita
encontrar el signo del sodiaco.
End Class

A continuación crearemos una aplicación donde se


validaran a través de instrucciones o mensajes al
usuario.
Diseñe el siguiente formulario de la siguiente pagina,
agregue los controles ErrorProvider y ToolTip.

Propiedades del ToolTip:


AutoPopDelay=5000
BackColor= a criterio
ForeColor=a criterio
initialDelay=50
IsBallon=True
ReshowDelay=100
ShowAlways=True
ToolTipIcon=Info
ToolTipTitle= a criterio

110
Visual Basic .NET
Private Sub TextBox1_Validating(ByVal _
sender As Object, ByVal e As _
System.ComponentModel.CancelEventArgs) _
Handles TextBox1.Validating, _
TextBox2.Validating, TextBox3.Validating

If Val(sender.Text) < 1 Or _
Val(sender.Text) > 20 Then
ErrorProvider1.SetIconAlignment(sender, _
ErrorIconAlignment.BottomLeft)
ErrorProvider1.SetError(sender, _
"Nota Incorrecta")
Else
ErrorProvider1.SetError(sender, "")
End If
End Sub
En el ejemplo se muestra un comentario para ingresar el
nombre del alumno y una alerta de una nota incorrecta.

111
Luis Zedler Espinoza Claro
Formularios MDI
Son formularios de documento múltiple (formularios que
contienen otros formularios), generalmente toda
aplicación o sistema de información cuenta con un
formulario MDI, donde se agregan los menús, barra de
herramientas, barra de estado entre otros.

Crearemos una nueva aplicación con Visual Basic, al


formulario creado le cambiaremos algunas de sus
propiedades.
Name = FormularioMDI
Text = Soluciones LEC
IsMdiContainer=True

Menús y barra de herramientas.

Del cuadro de herramientas agregar el control


MenuStrip, al agregar al formulario se vera el objeto
MenuStrip1 en la parte inferior del área de trabajo,
selecciónelo haciendo un clic sobre dicho objeto y
cambie sus propiedades como por ejemplo su propiedad
Backcolor.

112
Visual Basic .NET
Agregar opciones o Ítems del menú, es muy sencillo.
Haga clic
donde dice
Escriba aquí
(como se
puede
apreciar en la
imagen M1).

Imagen M1

Para cambiar
las
propiedades
de una
opción o
Item, haga
clic sobre dicha opción y cambie sus propiedades como
por ejemplo:
Name
Checked
Forecolor
ShortcutKeys
Imagen, etc.

Cuando cambie la
propiedad Imagen de
un Item del Menú, se
mostrara la siguiente Imagen M2
ventana (imagen M2).
Donde deberá seleccionar o importar una imagen.

113
Luis Zedler Espinoza Claro
Pero lo más importante
es: elegir si será un
Recurso local o Archivo
de recurso de proyecto,
si elige la segunda
opción, la imagen se
agregara al proyecto
(como se ve en la
imagen M3).
Imagen M3

Codificar un enlace de la opción o Item del Menú. Haga doble


clic en la opción deseada y se abrirá la ventana de código.
Private Sub EmpleadosMenuItem_Click()
REM mostrar el form dentro del MDI
WFEmpleado.MdiParent = Me
REM mostrar el form
WFEmpleado.Show()
End Sub

Con el código fuente anterior, estamos indicando que el


formulario WFEmpleado se mostrara dentro de
FormularioMDI, esto también significa que si estando
abierto WFEmpleado y cierro el FormularioMDI, se
cerraran todos los formularios que estén dentro del MDI.

El método de la clase Formulario MDI, FormClosing


nos ayudara a controlar o preguntar en una última
instancia si estamos seguros o no de cerrar toda la
aplicación. Vea e interprete el siguiente código fuente.

114
Visual Basic .NET
Private Sub FormularioMDI_FormClosing()

Dim rpta As String

rpta = MessageBox.Show("Esta seguro de _


cerrar toda la aplicacion", _
"Salida del sistema", _
MessageBoxButtons.YesNo, _
MessageBoxIcon.Question)

If rpta = vbNo Then


e.Cancel = True
'esto cancela la salida de la aplicación
End If

End Sub
Muestra del código anterior.

Barra de herramientas.- Agregar el control ToolStrip a


formularioMDI, como se ve en la imagen M4, cada
herramienta puede tomar uno de los controles del
listado, además nos facilita poder cambiar sus
propiedades como asignarle una imagen, texto, check de
verificación, entre otros.

115
Luis Zedler Espinoza Claro
Si desea eliminar una opción de la barra de herramientas
en diseño, haga clic derecho sobre dicha opción y
finalmente haga clic en Eliminar (repita estos pasos para
eliminar una
opción del
menú).

Codificar el
enlace de la
opción de la
barra de
herramientas.
Haga doble clic
sobre la opción
que sesea
programar y
codifique.

Imagen M4

Barra de estado, sirve para mostrar mensajes al


usuario, puede agregar uno de los controles que se
muestran en la siguiente imagen.

Imagen 10

116
Visual Basic .NET
Ejercicios.
Crear una aplicación que permita realizar cambio
monetario: -- de soles a dólares, -- de dólares a soles, --
de soles a euros,
-- de euros a
soles. La
aplicación debe
contar con un
menú de
opciones y una
barra de estado
para información
del usurario.

La interface del
formulario, tiene
un menú con 4
opciones, una
barra de estado con 2 paneles, TextBox, Label y Button.

Modificar las siguientes propiedades:


Del Form:
Name, Maxinumsize(300,300), StartPosition, Text.
Del Menu:
Name (de las opciones de menú), CheckOnClick, Text,
Forcolor, image.

En la propiedad TAG de cada opción ponga el tipo de


cambio (ej. 3,14), obviamente todos diferentes.

117
Luis Zedler Espinoza Claro
El menú Ver, tiene una opción “Barra de estado”, cambie
las siguientes propiedades:
Name, Checked,
CheckOnClick,
CheckState.

Esta opción nos


permitirá mostrar
y ocultar la barra
de estado de nuestra aplicación (mas adelante veremos
el código).

A los TexBox
no les
cambiaremos
el nombre,
pero si deben
estar en orden (TexBox1 es tipo de cambio), vea
TextAlign, WordWrap, ReadOnly.
Código fuente
Mostrar y ocultar la barra de estado desde el menú (Ver /
barra de estado)
Private Sub BarraDeEstadoToolStripMenuItem_Click()
If BarraDeEstadoToolStripMenuItem.Checked = True Then
StatusStrip1.Visible = True
Else
StatusStrip1.Visible = False
End If
End Sub

Mostrar la fecha del sistema en el primer panel de la


barra de estado.

118
Visual Basic .NET
Private Sub frmMoneda_Load()
Me.StatusLabel1.Text = Now.Date
Me.StatusLabel2.Text = "Elija una
opción"
End Sub
Código del botón Limpiar, permitirá borrar los TextBox.
Private Sub btnlimpiar_Click()
Me.TextBox1.Clear()
Me.TextBox2.Clear()
Me.TextBox3.Clear()
End Sub

Código fuente del conjunto de opciones de menú,


permitirá poner un mensaje en la barra de estado, de
que moneda de
esta haciendo el
cambio.
Establecerá el tipo
de cambio
(almacenado en el
TAG) de cada
opción que se
mostrara en el
Texbox1. Dejara
marcado el check
solamente de la
opción donde dio
un clic.

A continuación el código fuente de los antes


mencionado…

119
Luis Zedler Espinoza Claro
Private Sub
SolesADolaresToolStripMenuItem_Click()_
Handles SolesADolaresToolStripMenuItem.Click, _
SolesaEurosToolStripMenuItem.Click, _
DolaresASolesToolStripMenuItem.Click,_
DolaresAEurosToolStripMenuItem.Click,_
EurosASolesToolStripMenuItem1.Click, _
EurosADolaresToolStripMenuItem.Click

'desmarca check
Me.SolesADolaresToolStripMenuItem.Checked = False
Me.SolesaEurosToolStripMenuItem.Checked = False
Me.DolaresASolesToolStripMenuItem.Checked = False
Me.DolaresAEurosToolStripMenuItem.Checked = False
Me.EurosASolesToolStripMenuItem1.Checked = False
Me.EurosADolaresToolStripMenuItem.Checked = False
'ver moneda en la barra-estado
Me.StatusLabel2.Text = sender.text
'ver el tipo-cambio en el TextBox
Me.TextBox1.Text = sender.tag
'marca el check de opcion donde dio Click
sender.checked = True

End Sub

Código del botón calcular, ejecutara las operaciones de


cambio monetario.
Private Sub btnCalcular_Click()

Dim tipoc As Single, monto As Single


Dim total As Single, opcion As String
If Len(TextBox1.Text) > 0 And _
Len(TextBox2.Text) > 0 Then
tipoc = Me.TextBox1.Text
monto = Me.TextBox2.Text
opcion = Me.StatusLabel2.Text
If opcion = "Soles a Dolares" Then
total = monto / tipoc

120
Visual Basic .NET
End If
If opcion = "Soles a Euros" Then
total = monto / tipoc
End If
If opcion = "Dolares a Soles" Then
total = monto * tipoc
End If
If opcion = "Dolares a Euros" Then
total = monto / tipoc
End If
If opcion = "Euros a Soles" Then
total = monto * tipoc
End If
If opcion = "Euros a Dolares" Then
total = monto * tipoc
End If
Me.TextBox3.Text = total.ToString("###,###.##")
Else
MessageBox.Show( _
"Elega una opcion e ingresar un monto", _
"OJO", MessageBoxButtons.OK, _
MessageBoxIcon.Exclamation)
End If

End Sub

Nota. Se recomienda investigar constantemente, en tal sentido,


investigue las funciones incorporadas del programa, puesto que en
este libro solo se trato de funciones de usuario.

121
Luis Zedler Espinoza Claro
Prácticas
Ejercicio 1. Crear una aplicación que permita ingresar el
nombre del alumno, 3 calificaciones (Notas), vea la
imagen para el diseño.

El botón Nuevo, debe limpiar todos los TextBox.


El botón Sumar, debe sumar las 3 notas y mostrar el
resultado en el recuadro de texto correspondiente.
El botón Calcular, debe encontrar el promedio.
El botón Cerrar, permitirá salir de la aplicación.
El recuadro de texto de puntos y promedio de estar
deshabilitado, puesto que aquí no se ingresaran datos.

122
Visual Basic .NET
Ejercicio 2. Crear una aplicación que permita calcular
los descuentos de un trabajador, el formulario debe ser
parecido a la siguiente imagen. Se ingresaran apellidos,
nombres y sueldo. Los demás recuadros de texto
deshabilitarlos.

En los recuadros donde se ingresan los apellidos y


nombres no debe permitir ingresar datos numéricos.
En el casillero donde se ingresa el sueldo solo debe
permitir ingresar o digitar números.

Al ingresar el sueldo automáticamente deberá calcular


los descuentos y totales.
EsSalud = 3 % del sueldo
A F P = 11 % del sueldo
C T S = 6 % del sueldo
Total Dscto. = (EsSalud + A F P + C T S)
Total = sueldo – Total Dscto.
El botón Limpiar servirá para borrar los datos de los
recuadros de texto.
El botón Salir, cerrara la aplicación.

123
Luis Zedler Espinoza Claro
Ejercicio 3: Crear una aplicación que permita calcular el
área y perímetro de un Rectángulo.

Ejercicio 4: Crear una aplicación


que permita calcular el área y
perímetro de un Rombo.
Ejercicio 5: Crear una aplicación
que permita calcular el área y
perímetro de un Trapecio.
Ejercicio 6: Calcular el área y
perímetro de un Triangulo.
Ejercicio 7: Calcular el área y
perímetro de un Círculo.
Nota: Todas las aplicaciones anteriores deben de
presentar opciones para calcular (área o perímetro),
teniendo en cuenta lo que se desee calcular deben
aparecer los cuadros de texto para ingresar los datos
(bases, alturas, diagonales, etc.).

124
Visual Basic .NET
Ejercicio 8: Crear una aplicación para la venta de
automóviles, con el siguiente diseño de interface.

El ListBox muestra los autos en venta, cuando se haga


clic en uno de ellos se mostrará su descripción y precio.
El NumericUpDown de cantidad permite indicar la
cantidad de venta (mínimum=0, máximum=10), cuando
se indique la cantidad aparecerá el importe.
El NumericUpDown de descuento permite indicar el
porcentaje de descuento sobre el importe de venta
(mínimum=0, máximum=10), cuando se indique el
porcentaje se calculará el descuento y aparecerá el total.
Ejercicio 9: Crear una aplicación que permita ingresar el
precio de un artículo y la cantidad de artículos
comprados, dar el subtotal, el IGV y el total de la compra.

125
Luis Zedler Espinoza Claro
Ejercicio 10: Calcular el sueldo de un vendedor teniendo
en cuenta su comisión por ventas, mas su sueldo base.
Comisión ventas El cuadro combinado
contiene 7 nombres de
3 % <= 1000 vendedores, cuando elija
7 % 1001 -- 2000 uno de ellos, debe
9 % 2001 -- 3000 mostrar su sueldo básico
11 % 3001 – 4000 correspondiente.
14 % > 4000

Al ingresar el monto de venta, debe calcular y mostrar la


comisión, teniendo en cuenta las comisiones respectivas,
y mostrar el neto a pagar.
Si marca el descuento pro AFP, calcular el descuento y
el Neto a pagar, si desmarca debe actualizar los datos, al
igual que el Seguro de vida (monto 5.00).
Ejercicio 11: Modificar el ejercicio 1. Según el promedio
encontrar la observación de un alumno: <7, pésimo; de 8
a 11, malo; de 12 a 14, Regular; de 15 a 18, Bueno; 19 y
20, Excelente.

126
Visual Basic .NET
Ejercicio 12: Crear una aplicación que encuentre
cuantas vocales tiene una frese de texto.

Ejercicio 13: Crear una aplicación que cuente los dígitos


pares de un número.

Ejercicio 14: Diseñar una aplicación donde se ingresen


5 números en diferentes cuadros de texto, el programa
debe ordenar los números (ascendente) y mostrarlos en
un ListBox.

127
Luis Zedler Espinoza Claro
Ejercicio 15: Diseñar una aplicación para cotizar
computadoras y perifericos, vea la imagen para guiarse.

El CheckedListBox, contiene los articulos de venta con


sus respectivos precios. Para realizar una venta marque
la casilla del articulo (s) de esta forma se agregara al
listado de venta infererior (componentes elegidos),
conforme va seleccionando los articulos aparecera el
importe, igv y total al contado.
El NumericUpDown, permitira elegir el numero de letras
a pagar (1 hasta 10), con esto se calcula el monto de
letra, el total de intereses y el total acumulado, las letras
deben agregar agregarse al listado como se la imagen.
Criterios (si es una letra, no hay intereses; de 1 a 4,
11%; de 5 a 7, 21%; mayor a 7, 77%).

128
Visual Basic .NET
Ejercicio 15: Crear una funcion que permita encontrar el
promedio de un listado de numeros
Ejercicio 16: Crear una funcion que permita encontrar el
numero mayor de un listado de numeros
Ejercicio 17: Crear una funcion que permita encontrar el
numero menor de un listado de numeros
Ejercicio 18: Crear una aplicación para la venta de
articulos de una librería-Bazar.
Combobox1: contiene el listado de articulos de venta.
NumericUpDown1: (decimalplaces=2, increment=0.5).
NumericUpDown2: (minumum=1, maximum=10).
Boton_Agregar: verificar si ha seleccionado un articulo
antes de agregar los datos al lisdado; calcular el importe;
subtotal; si se vende mas de 5 articulos diferentes, el
descuento es 7% de lo contrario 0%; y total.

La aplicación contiene un menu contextual con las


mismas opciones y funcionalidades de los botones.

129
Luis Zedler Espinoza Claro
Indice
UNIDAD I PAG 3
Fundamentos teóricos. 4 - 10
¿Como ingresar al programa?. 11
¿Como crear una aplicación o proyecto?. 13
Propiedades, eventos y métodos de Formularios 14 – 17
¿Como ejecutar y detener una aplicación? 18
¿Cómo agregar un formulario a la aplicación? 19
¿Cómo guardar el proyecto o aplicación?. 20
¿Cómo abrir un proyecto o aplicación?. 21
Cambiar el objeto de ejecución inicial. 22 – 23
Control TextBox. 24 – 29
Ventana de código. 27 , 29
Controles RadioButton y CheckBoxList. 30 – 31
ComboBox CheckBoxList ListBox. 32- 36

UNIDAD II PAG 37
Tipos de datos – Conversiones. 38-40
¿Que es una variables?. 40
Control ComboBox. 41-42
Declaracion y ambito de variables. 43
Uso de variables. 44-47
¿Qué es una Constante?. 48
Uso de Operadores. 49 - 52

SEMANA III PAG 53


¿Que es una Estructura de control?. 54
Estructura condicional Simple. 55-58
Estructura condicional Doble. 59 - 62

130
Visual Basic .NET
Estructura condicional Anidado. 63 – 71
Estructura condicional Multiple. 72 - 76

SEMANA IV PAG 77
¿Que es una Estructura repetitiva? (bucles). 78
Uso de Bubles. 79 – 81
Matriz de datos. 82 - 83
¿Que es un Procedimiento de usuario?. 84 – 85
¿Como agregar un modulo al proyecto?. 85
Creacion de procedimientos. 86 – 88
Creacion y uso de funciones. 89 – 91
Control PictureBox. 92 - 93
¿Que es Excepciones?. 94 – 95
Uso de Try. 96 - 97
¿Que es un cuadro de dialogo?. 98
Uso de MessageBox. 99 – 103
Uso de ImputBox. 104
Cuadros de dialogo de windows. 104 - 107
¿Qué es validacion de datos?. 108
Controles de validacion. 109 – 111
Formularios MDI. 112
Menus y barra de herramientas. 112
Menus. 113 – 114
Barra de herramientas y estado. 115 – 121

Practicas de aprendizaje. 122 - 129

131
Luis Zedler Espinoza Claro

Você também pode gostar