Sei sulla pagina 1di 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.

Net

INDICE
TEMA 1 .............................................................................................................................................................. 4 Qu es la Plataforma .NET? ......................................................................................................................... 5 Qu es el .NET Framework?......................................................................................................................... 5 Visual Basic .NET ............................................................................................................................................ 6 Crear un Proyecto .......................................................................................................................................... 6 Qu es un Formulario? ................................................................................................................................ 6 Ventana de Cdigo ........................................................................................................................................ 6 Barra de Herramientas .................................................................................................................................. 7 Propiedades ................................................................................................................................................... 8 Mtodos ...................................................................................................................................................... 10 Controles ..................................................................................................................................................... 11 Ejercicio Practico N1. ................................................................................................................................. 13 Resolver: ...................................................................................................................................................... 14 TEMA 2 ............................................................................................................................................................ 16 Tipo de Datos ............................................................................................................................................... 17 Variables ...................................................................................................................................................... 18 mbito de una Variable ............................................................................................................................... 19 Ejercicio Prctico N1: ................................................................................................................................. 21 Variables Estticas ....................................................................................................................................... 21 Variables vs. Constantes .............................................................................................................................. 22 Convertir Tipos de Datos ............................................................................................................................. 23 Ejercicios ...................................................................................................................................................... 24 TEMA 3 ............................................................................................................................................................ 28 FUNCIONES TIPO CADENA ........................................................................................................................... 29 Format ......................................................................................................................................................... 31 TEMA 4 ............................................................................................................................................................ 38 Cmo Utilizar Operadores Aritmticos ....................................................................................................... 39 Cmo Utilizar Operadores de Comparacin................................................................................................ 40 Cmo Utilizar los Operadores Lgicos ......................................................................................................... 40 Uso de Estructuras de Decisin ................................................................................................................... 41

Pag. 1 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


TEMA 5 ............................................................................................................................................................ 48 Control ListBox y ComboBox ....................................................................................................................... 49 Ejercicio Practico N1 .................................................................................................................................. 50 TEMA 6 ............................................................................................................................................................ 55 Bucles........................................................................................................................................................... 56 TEMA 7 ............................................................................................................................................................ 62 Arreglos ....................................................................................................................................................... 63 Los Arrays Multidimensionales.................................................................................................................... 65 Estructuras ................................................................................................................................................... 68 Ejercicios de Arrays...................................................................................................................................... 71 TEMA 8 ............................................................................................................................................................ 75 Sentencia RND () .......................................................................................................................................... 76 Procedimientos Sub ..................................................................................................................................... 78 Procedmientos Function ............................................................................................................................. 78 El Control Timer ........................................................................................................................................... 79 TEMA 9 ............................................................................................................................................................ 82 RadioButton y CheckBox ............................................................................................................................. 83 Try...Catch .................................................................................................................................................... 89 TEMA 10 .......................................................................................................................................................... 92 Control OpenFileDialog ............................................................................................................................... 93 Control SaveFileDialog ................................................................................................................................. 93 Control FontDialog....................................................................................................................................... 94 Control ColorDialog ..................................................................................................................................... 94 ProgressBar.................................................................................................................................................. 97 TEMA 11 .......................................................................................................................................................... 99 El Control DateTimePicker ......................................................................................................................... 100 MonthCalendar.......................................................................................................................................... 100 ToolTip ....................................................................................................................................................... 100 NotifyIcon .................................................................................................................................................. 100 Ejercicio Prctico N1 ................................................................................................................................ 101 TEMA 12 ........................................................................................................................................................ 104 Formulario MDI Padre ............................................................................................................................... 105

Pag. 2 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


El Editor de Men ...................................................................................................................................... 105 Creacin de un Men Contextual .............................................................................................................. 106 Control ToolBar.......................................................................................................................................... 106 Ejercicio Prctico N1 ................................................................................................................................ 108 ToolStrip .................................................................................................................................................... 109 StatusStrip ................................................................................................................................................. 109 Ejercicio Prctico N2 ................................................................................................................................ 110 TEMA 13 ........................................................................................................................................................ 115 Creacin de Controles en Visual Basic.Net 2005 ....................................................................................... 116 Explorador Web ......................................................................................................................................... 124 Reproductor de Msica y Video ................................................................................................................ 125

Pag. 3 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

TEMA 1
Qu es la plataforma Microsoft .NET? Qu es el .NET Framework?

Conceptos bsicos de .NET


Explorar el entorno de desarrollo Crear un proyecto Visual Basic .NET

Pag. 4 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Introduccin
Qu es la Plataforma .NET?
La plataforma .NET proporciona la base de la siguiente generacin de software que permite conectar sistemas, informacin, dispositivos y usuarios distintos de un modo ms unificado y personalizado. Incorpora servicios Web XML como el medio para permitir la interoperabilidad entre tecnologas diferentes. Visual Basic .NET usa una jerarqua de clases que estn incluidas en el .NET Framework, por tanto conocer el .NET Framework nos ayudar a conocer al propio Visual Basic .NET.

Qu es el .NET Framework?
"El .NET Framework es un entorno multi-lenguaje para la construccin, distribucin y ejecucin de Servicios Webs y aplicaciones." El .NET Framework es el corazn de .NET, cualquier cosa que queramos hacer en cualquier lenguaje .NET debe pasar por el filtro cualquiera de las partes integrantes del .NET Framework. El .NET Framework tiene dos componentes principales: el Common Lenguaje Runtime y la biblioteca de clases. Biblioteca de Clases: La biblioteca de clases es una coleccin completa orientada a objetos de clases reutilizables y organizadas en espacios de nombres jerrquicos en base a su funcionalidad. Podemos utilizar la biblioteca de clases para desarrollar aplicaciones que abarcan desde las aplicaciones clientes tradicionales hasta las aplicaciones basadas en las ltimas innovaciones proporcionadas por ASP.NET y los servicios Web XML. Common Language Runtime: El Common Language Runtime es la base del .NET Framework. En el entorno .NET, los programadores desarrollan aplicaciones en el lenguaje compatible con .NET que elijan; el cdigo se compila en MSIL, y el entorno de ejecucin gestiona y ejecuta el cdigo compilado.

Pag. 5 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


Visual Basic .NET Crear un Proyecto
Como ustedes ya saben hay dos formas de crear un nuevo proyecto, lo nico que veremos, lo que tenemos que escoger, al crear un proyecto esta vez seleccionaremos Aplicacin para Windows, le pondremos un nombre y luego daremos clic en aceptar.

Ventana de Diseo
Al crear una nueva solucin de Aplicacin para Windows, siempre nos aparecer la siguiente ventana. Como se darn cuenta ac el archivo siempre tendr un nombre de Form1, que es el primer formulario del proyecto.

Qu es un Formulario?
Es la ventana principal, porque sirve de fondo para los controles que se dibujan. en una aplicacin, como cajas de textos, etiquetas, botones, etc. Se podra decir que es un contenedor de controles y objetos.

Ventana de Cdigo
Esta ventana contendr todo el cdigo que realizara los diferentes eventos, procedimientos, instrucciones del formulario. Mayormente para activar esta ventana y aadir cualquier cdigo, siempre se tendr que hacer doble clic en el control deseado, o si no oprimir la tecla F7.

Caja de Herramientas
Pag. 6 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


Contiene los controles que se dibujan en el formulario, en tiempo de diseo y no en tiempo de ejecucin. Estos controles estn divididos por clases, los controles ms usados son los de Common Controls, mas adelante ya veremos con ms detalle cada control.

Explorador de Soluciones
En esta ventana se encuentra el formulario, tambin vas a poder encontrar todos los tem que agregas de aqu en adelante, ya sean formularios, mdulos, clases, etc.

Barra de Herramientas
Esta barra contendr diversos botones que suelen facilitar al programador en el uso del programa.

Pag. 7 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


Propiedades

Pag. 8 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Pag. 9 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


Mtodos
Vamos a tocar los mtodos ms utilizados, ya que existen un sin fin de mtodos.

Eventos
Vamos a tocar los eventos ms utilizados, ya que existen una cierta cantidad considerables de eventos.

Pag. 10 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Controles
Con el .NET Framework 2.0 tenemos una diversidad de control y objetos que podemos usar en nuestras aplicaciones, ahora veremos algunos controles que mas vamos a usar divididos en categoras.

Pag. 11 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Pag. 12 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Ejercicio Practico N1.


1. Disear el siguiente Formulario:
LblNombre TxtNombre

BtnMensaj

2. En el evento click del boton BtnMensaje codificamos lo siguiente: Private Sub btnMensaje_Click MsgBox("Bienvenido a Visual Basic .Net " & Me.txtnombre.Text) End Sub Ejercicio Practico N2. 1. Disear el siguiente Formulario:
TxtTexto

btnColorText o btnColorFondo

2.- Luego codificamos lo siguiente en el evento click de los botones: Private Sub BtnColorTexto_Click Me.TxtTexto.ForeColor = Color.Blue End Sub Private Sub BtnColorFondo_Click Me.BackColor = Color.Red End Sub Ejercicio Practico N3. 1. Disear el siguiente Formulario:

Txt Txt BtnSum BtnRest BtnDivid TxtR BtnMultiplic BtnPotenc

Pag. 13 de 125

BtnNuev

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

2.- Luego codificamos lo siguiente en el evento click de los botones: Private Sub btnsuma_Click Me.txtres.Text = Val(Me.txt1.Text) + Val(Me.txt2.Text) End Sub Private Sub btnresta_Click Me.txtres.Text = Val(Me.txt1.Text) - Val(Me.txt2.Text) End Sub Private Sub btnmulti_Click Me.txtres.Text = Val(Me.txt1.Text) * Val(Me.txt2.Text) End Sub Private Sub btndividir_Click Me.txtres.Text = Val(Me.txt1.Text) / Val(Me.txt2.Text) End Sub Private Sub btnpotencia_Click Me.txtres.Text = Val(Me.txt1.Text) ^ Val(Me.txt2.Text) End Sub Private Sub btnnuevo_Click Me.txt1.Clear() Me.txt2.Clear() Me.txtres.Clear() Me.txt1.Focus() End Sub

Resolver:
1.- Crear una aplicacin en la cual me permita realizar la siguiente ecuacion: y= 5x2+2x+2 10

2.- Crear una aplicacin en la cual me permita realizar la siguiente ecuacion:


y=4x2+x+5 2x

Pag. 14 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Pag. 15 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

TEMA 2
Introduccin a los Tipos de Datos Qu son las Variables? mbito de las Variables Convertir Tipos de Datos

Pag. 16 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


Tipo de Datos
El tipo de datos de un elemento de programacin hace referencia a la clase de datos que puede contener y a cmo se almacenan los datos.

La ilustracin anterior lista algunos de los tipos ms utilizados en Visual Basic .NET. El trmino con signo significa que los nmeros pueden ser positivos o negativos, como en +48 o -48.

Como Escoger un Tipo de Dato?

Pag. 17 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


Visual Basic no requiere que seleccione explcitamente un tipo de datos cuando declara una variable. Sin embargo, es una buena idea hacerlo, ya que de esta forma sus aplicaciones sern ms fiables y requerirn menos memoria. El tipo de datos determina los valores permitidos para una variable, que, a su vez, determinan las operaciones que pueden realizarse sobre esa variable. Puede seguir las directrices generales que se muestran en la ilustracin anterior para seleccionar el tipo de datos adecuado para una variable. Si usted declara variables sin tipo de datos, se les otorga de forma predeterminada el tipo de datos Object. Esto facilita la escritura rpida de programas, pero puede hacer que stos se ejecuten ms lentamente.

Variables

Qu son las Variables?


Utilizamos variables para almacenar valores que pueden cambiar cuando una aplicacin se est ejecutando. Una variable tiene los siguientes elementos: mbito: El conjunto de todo el cdigo que puede acceder y utilizar la variable. Nombre: La palabra que utilizamos para hacer referencia a la variable en cdigo. Tipo de Datos: El tipo y tamao inicial de datos que la variable puede almacenar. Antes de poder utilizar variables en su aplicacin, debe asignarles un valor. Puede asignar un valor a una variable despus de declararla o mientras la declara.

Cmo Declarar Variables


Declaramos una variable para especificar su nombre y caractersticas. La instruccin de declaracin tanto para variables de tipo valor como de tipo referencia es la instruccin Dim. La ubicacin y el contenido de la declaracin determinan las caractersticas de la variable.

Sintaxis para Declarar una Variable


Para declarar una variable, utilice la siguiente sintaxis: Dim nombreVariable As Type Utilizamos la instruccin Dim para declarar y asignar espacio de almacenamiento para variables en bloques, procedimientos, mdulos, estructuras y clases. Utilizamos la clusula As en la instruccin Dim para especificar el tipo de datos de la variable.

Nota: La palabra clave Dim es una abreviatura de la palabra dimensin.

Pag. 18 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


Cmo Asignar Valores a Las Variables
Antes de poder utilizar variables en su aplicacin, debe asignarles un valor. Puede asignar un valor a una variable despus de declararla o mientras la declara.

Sintaxis Para asignar un valor a una variable, utilice el operador de asignacin (=), como se muestra en la siguiente expresin: NombreVariable = Valor El valor del lado derecho de la expresin se asigna a la variable del lado izquierdo de la expresin.

Asignar un Valor despus de Declararla Puede asignar valores a variables despus de declararlas, como se muestra en el siguiente ejemplo: Dim cumpleaos As Date Cumpleaos = #3/9/1974# Cuando creamos una variable con la instruccin Dim, Visual Basic inicializa automticamente las variables numricas a 0, las cadenas de texto a vacas ("") y las variables de fecha a 1 de enero de 0001. Asignar Valores mientras la Declaras Tambin puede asignar un valor a una variable mientras la declara, como se muestra en los siguientes ejemplos: Dim cumpleaos As Date = #3/9/1974# Dim goodNews As String = "Su cheque est en el correo." Dim testCondition As Boolean = True

Nota: Los valores de fecha (Date) deben estar encerrados entre almohadillas (##), y los valores de cadena (String) deben estar encerrados entre comillas ("").

mbito de una Variable


Cuando utilizamos variables, debemos asegurarnos de que son accesibles desde todas las reas de cdigo que hacen referencia a ellas. Por otra parte, es posible que necesite restringir el acceso a determinadas variables. Todo el conjunto de cdigo que puede hacer referencia a una variable por su nombre se denomina mbito (scope) de la variable.

Pag. 19 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Pag. 20 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


Ejercicio Prctico N1:
1.- Disear el siguiente formulario

BtnImagen1 PictureBox1 BtnImagen2 BtnImagen3 BtnImagen4

2.- Luego codificamos lo siguiente Imports System.Drawing.Image Public Class Form3 Dim ruta As String = "Aqui pondremos la ruta donde se encuentran las imgenes unido con un \" Private Sub btnimagen1_Click Me.PictureBox1.Image = FromFile(ruta & "nombre de la imagen con su extension") End Sub End Class 3.- El codigo del evento click del boton BtnImagen1; es el mismo para los otros botones pero con imgenes diferentes.

Variables Estticas
La vida de una variable local empieza cuando un procedimiento la invoca y acaba cuando el procedimiento finaliza. Cuando acaba la vida de una variable local, la instancia de la variable se destruye y su valor se pierde. En ocasiones, es posible que deseemos que la vida de una variable local sea ms larga que la vida del procedimiento. Por ejemplo, podemos desear que un procedimiento realice una accin especfica la primera vez que sea invocado y que no haga nada en las siguientes llamadas. Podemos declarar una variable esttica para conseguir esta funcionalidad. Definicin: Una variable esttica perdurar mientras la aplicacin siga ejecutndose. Las variables estticas siguen existiendo y conservan sus ltimos valores entre invocaciones al procedimiento en el que se han declarado. Sin embargo, el cdigo de otros procedimientos no puede acceder a ellas. Sintaxis: Para declarar una variable esttica local, utilizaremos la siguiente sintaxis: Static variableName As Type

Pag. 21 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


Ejercicio Prctico N2: 1.- Disear el siguiente formulario

2.- Luego codificaremos lo siguiente dentro del botn btnincrementa (Evento Click) Dim a As Integer Static b As Integer a=a+1 b=b+1 lbla.Text = a lblb.Text = b

Variables vs. Constantes

Las constantes almacenan valores que, como su nombre indica, permanecen constantes durante la ejecucin de una aplicacin. Algunas ventajas de utilizar constantes son: Ejercicio Prctico N3: Hacen que el cdigo sea ms fcil de leer. Utilizan menos memoria que las variables. Hacen que los cambios a nivel de aplicacin sean ms fciles de implementar.

Pag. 22 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


1. Disear el siguiente formulario

2. Luego codificaremos lo siguiente, declaramos para todo el formulario las siguientes variables. Dim circunferencia, radio as Double Const Pi as Double = 3.1415 3. Luego codificar el siguiente cdigo dentro del evento clic del botn btncalcular. Radio=txtradio.text Circunferencia= 2 * Pi * radio Txtcircun.text=circunferencia

Convertir Tipos de Datos


El proceso de convertir el valor de un tipo de datos en otro se denomina conversin o casting. Podemos convertir explcitamente valores de un tipo en otro antes de que sean utilizados, evitando as errores en nuestro cdigo y haciendo que ste se ejecute ms rpidamente. Visual Basic .NET tambin puede realizar algunas conversiones de tipos de datos automtica o implcitamente, como convertir algunas cadenas a enteros. Sin embargo, las conversiones implcitas pueden producir resultados imprevistos.

Pag. 23 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Ejercicios

1.- Disear el siguiente formulario

TxtNom TxtA TxtNiv TxtGra TxtCur TxtFin TxtN1 btnReporte Enabled=False TxtPar

2.- Luego agregaremos un Modulo. 3.- Iremos al Men Proyecto /Agregar Modulo. Pag. 24 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


4.- Despus de Agregarlo codificaremos lo siguiente en el modulo: Module Module1 Public fecha As Integer Public nom, niv, grad, cur As String Public n1, par, fin, prom, edad As Short End Module 5.- Luego codificaremos lo siguiente en el Form1: Private Sub btnreporte_Click nom = Me.txtnom.Text fecha = Me.txtao.Text niv = Me.txtniv.Text grad = Me.txtgrad.Text cur = Me.txtcur.Text n1 = CInt(Me.txtn1.Text) par = CInt(Me.txtpar.Text) fin = CInt(Me.txtfin.Text) edad = 2008 - fecha prom = (n1 + par + fin) / 3 frmreporte.Show() Me.Hide() End Sub Private Sub Form1_Load Me.txtao.Clear() Me.txtcur.Clear() Me.txtfin.Clear() Me.txtgrad.Clear() Me.txtn1.Clear() Me.txtniv.Clear() Me.txtnom.Clear() Me.txtpar.Clear() Me.txtnom.Focus() End Sub Pag. 25 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


Private Sub txtfin_TextChanged If Me.txtfin.Text <> "" Then Me.btnreporte.Enabled = True Else Me.btnreporte.Enabled = False End If End Sub 6.- Agregamos otro formulario llamado FrmReporte y disearemos de la siguiente manera:

LblMensaje

BtnMostrar

BtnVolver

7.- En el formulario FrmReporte codificaremos lo siguiente Private Sub btnmostrar_Click Me.lblmensaje.Text = "El Alumno:" & nom.ToString & vbCrLf _ & "Con Edad:" & edad.ToString & vbCrLf _ & "Nivel:" & niv.ToString & vbCrLf _ & "Grado:" & grad.ToString & vbCrLf _ & "En el Curso de " & cur.ToString & " tiene un promedio de " & prom.ToString End Sub Private Sub btnvolver_Click Form1.Show() Me.Hide() End Sub

8.- Por ultimo probaremos la aplicacin y quedara de la siguiente manera Pag. 26 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Ejercicios Propuestos
Ejercicio N1 1.- Calcular el inters, su primera cuota de pago y el monto total a pagar de un prstamo. Utilizando variables y constante.

Ejercicio N2 1.- Realizar una pequea aplicacin de pagos de trabajadores. Utilizando variables.

Pag. 27 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

TEMA 3
Funciones Left, Rigth, Len, Trim, etc

Uso de FormatDateTime.

Pag. 28 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

FUNCIONES TIPO CADENA


Una cadena es un dato de tipo String (Carcter); es decir se refiere a letras o letras y nmeros, ahora veremos las funciones de cadenas ms utilizadas y posteriormente realizaremos una aplicacin para que les quede ms claro, sobre las funciones de cadena. Right: Obtiene de una cadena, una cantidad de caracteres empezando por la derecha: Sintaxis; Microsoft.VisulBasic.Right(Cadena,N). Left: Obtiene de una cadena, una cantidad de caracteres empezando por la izquierda: Sintaxis; Microsoft.VisulBasic.Left(Cadena,N). Mid: Obtiene de una cadena, una cantidad de caracteres a partir de una posicin determinada: Sintaxis; Microsoft.VisulBasic.Mid(Cadena,N). Len: Obtiene la longitud de una cadena, es decir la cantidad de caracteres que contiene incluyendo los espacios en blanco: Sintaxis; Len(Cadena). Trim: Quita los espacios en blanco al final de una cadena: Sintaxis; Trim(Cadena). RTrim: Quita los espacios en blanco al final de una cadena: Sintaxis; RTrim(Cadena). LTrim: Quita los espacios en blanco al inicio de una cadena: Sintaxis; LTrim(Cadena). UCase: Convierte una cadena en maysculas: Sintaxis; UCase(Cadena). LCase: Convierte una cadena en minsculas: Sintaxis; LCase(Cadena). StrConv: Convierte una cadena en 3 formas diferentes, en maysculas = 1, minsculas = 2, la primera letra de cada palabra en maysculas = 3 : Sintaxis; StrConv(Cadena,Valor). InStr: Obtiene un nmero que indica la posicin de una subcadena dentro de una cadena: Sintaxis; InStr(Cadena,SubCadena).

Ejercicio Prctico N1 1. Disear el siguiente formulario

Pag. 29 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


2. Luego codificaremos lo siguiente dentro del botn btnMuestra (Evento Click) . Me.lblLongitud.Text = Len(Trim(Me.txtFrase.Text)) Me.lblPrimero.Text = Microsoft.VisulBasic.Left(Trim(Me.txtFrase.Text), 1) Me.lblUltimo.Text = Microsoft.VisulBasic.Right(Trim(Me.txtFrase.Text), 1) Me.lblSegSex.Text = Microsoft.VisulBasic.Mid(Trim(Me.txtFrase.Text), 2, 5) Me.lblPosA.Text = InStr(Me.txtFrase.Text, "a") Me.lblMinusculas.Text = LCase(Me.txtFrase.Text) Me.lblMayusculas.Text = UCase(Me.txtFrase.Text) Me.lblSoloPrim.Text = StrConv(Me.txtFrase.Text, 3) 3. Luego codificaremos lo siguiente dentro del botn btnNuevo_Click (Evento Click) . Me.txtFrase.Text = "" Me.lblLongitud.Text = "" Me.lblMayusculas.Text = "" Me.lblMinusculas.Text = "" Me.lblPosA.Text = "" Me.lblPrimero.Text = "" Me.lblSegSex.Text = "" Me.lblSoloPrim.Text = "" Me.lblUltimo.Text = "" Me.txtFrase.Focus()

4. Luego codificaremos lo siguiente dentro del botn btnSalir (Evento Click) Me.Close()

Pag. 30 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


Format
Esta funcin Format nos permite darle un formato a un dato, ya sea una fecha, nmero, hora, etc. Sus formatos ms utilizados son:

Su sintaxis sera la siguiente: Format(Variable,.Formato.) Ejemplo: Dim Numero As Double Numero = 100000/3 Me.Label1.Text = Format(Numero, "###,##0.00") Y lo que nos mostrara el Label en la pantalla seria lo siguiente Rpta.- 33,333.33

Pag. 31 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Ejercicio Prctico N2 1.- Disear el siguiente formulario


TxtFecha BtnFecActual TxtHora BtnHor a TxtF L TxtFC BtnMostra r TxtFH C

2.- Luego codificaremos lo siguiente Private Sub btnfecactual_Click Me.txtfecha.Text = Format(Now(), "dd/MM/yy") End Sub Private Sub btnhora_Click Me.txthora.Text = Format(Now(), "hh:mm:ss tt") End Sub Pag. 32 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


Private Sub btnmostrar_Click Dim FecLar, FecCor As Date FecLar = CDate(Me.txtfecha.Text) FecCor = CDate(Me.txtfecha.Text) Me.txtfl.Text = FormatDateTime(FecLar, DateFormat.LongDate).ToString Me.txtfc.Text = FormatDateTime(FecCor, DateFormat.ShortDate).ToString Me.txtfhc.Text = FormatDateTime(Me.txthora.Text, DateFormat.ShortTime).ToString End Sub

Ejercicios
Ejercicio 1
1. En esta aplicacin se debe de ingresar el nombre del un producto, su precio unitario y la cantidad comprada de dicho producto, luego se debe calcular y visualizar el sub Total, el descuento en porcentaje, el descuento en soles y el total a pagar. El descuento en porcentaje se depende del sub total, de acuerdo a la siguiente tabla.

Pag. 33 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


2. Digitar el siguiente cdigo dentro del botn btnCalcular (Evento Click) Dim Desc As Integer lblSubTotal.Text = CStr(Val(txtPrecUnit.Text) * Val(txtCantComp.Text)) Select Case Val(lblSubTotal.Text) Case 100, 101 : Desc = 2 Case 101.1 To 200 : Desc = 4 Case 200.1 To 500 : Desc = 6 Case Is > 500 : Desc = 10 Case Else : Desc = 0 End Select lblDescP.Text = CStr(Desc) lblDescS.Text = Val(lblSubTotal.Text) * Desc / 100 lblTotal.Text =Val(lblSubTotal.Text) - Val(lblDescS.Text) lblSubTotal.Text = Val(lblSubTotal.Text)

3. Digitar el siguiente cdigo dentro del botn btnNuevo (Evento Click) txtCantComp.Text = "" txtPrecUnit.Text = "" txtProducto.Text = "" lblDescP.Text = "" lblDescS.Text = "" lblSubTotal.Text = "" lblTotal.Text = "" txtProducto.Focus() btnSalir (Evento Click) Me.Close()

Ejercicio 2
1. En este programa se debe de ingresar el nombre del alumno, su nota nmero 1 y su nota nmero 2, al hacer clic en el botn obtener promedio se debe de visualizar: el promedio del alumno, una observacin que indica si el alumno esta aprobado o desaprobado, la cantidad de puntos que le faltan para aprobar, si esta desaprobado o los puntos para llegar a veinte en caso que este aprobado. 2. Tambin se debe visualizar la nota cualitativa del alumno de acuerdo al promedio. Se debe de controlar que solo se ingresen notas entre 0 y 20.

Pag. 34 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

3. Este es el diseo del formulario.

4. Digitar el siguiente cdigo dentro del botn btnObtener (Evento Click) lblPromedio.Text = CStr((Val(txtN1.Text) + Val(txtN2.Text)) / 2) If Val(lblPromedio.Text) >= 10.5 Then lblObservacin.Text = "Aprobado(a)" lblPuntos.Text = "Le faltan " + CStr(20 - Val(lblPromedio.Text)) + " puntos para tener 20" Else lblObservacin.Text = "Desaprobado(a)" lblPuntos.Text = "Le faltan " + CStr(11 - Val(lblPromedio.Text)) + " puntos para aprobar" End If Select Case Val(lblPromedio.Text) 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"

Pag. 35 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


End Select 5. Digitar el siguiente cdigo dentro del botn btnOtro (Evento Click) txtAlumno.Text = "" txtCurso.Text = "" txtN1.Text = "" txtN2.Text = "" lblCualidad.Text = "" lblObservacin.Text = "" lblPromedio.Text = "" lblPuntos.Text = "" txtAlumno.Focus() 6. Digitar el siguiente cdigo dentro del botn btnSalir (Evento Click) Me.Close() Ejercicio Propuesto. 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 mostrar cuantos aos le faltan para se mayor de edad y si es mayor de edad se debe mostrar hace cuantos aos es mayor de edad. Tambin se debe mostrar la etapa de la persona teniendo en cuenta lo siguiente.

Pag. 36 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Pag. 37 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

TEMA 4 4Qu son las expresiones condicionales?


Cmo utilizar operadores aritmticos

Cmo utilizar operadores de comparacin


Cmo utilizar operadores lgicos Cmo utilizar instrucciones IfThen Cmo utilizar instrucciones IfThenElse Cmo utilizar instrucciones IfThenElseIf
Pag. 38 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Qu son las Expresiones Condicionales?


Las expresiones condicionales permiten desarrollar la aplicacin para realizar tareas de forma selectiva, en funcin de valores generados por la aplicacin o de valores introducidos por el usuario. Las expresiones condicionales tienen numerosos usos en programacin, pero generalmente se encuentran en instrucciones que controlan la ejecucin de programas. Las expresiones condicionales deben devolver True o False.

Cmo Utilizar Operadores Aritmticos


Los operadores aritmticos se utilizan para realizar muchas de las operaciones aritmticas familiares que implican el clculo de valores numricos representados por literales, variables, otras expresiones, llamadas de funciones y propiedades, y constantes. La siguiente tabla presenta una lista de los operadores aritmticos que utilizaremos con mayor frecuencia en Visual Basic .NET.

Pag. 39 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Cmo Utilizar Operadores de Comparacin


Un operador de comparacin realiza una operacin sobre dos valores y devuelve un resultado Boolean. Visual Basic .NET soporta seis operadores de comparacin. Los seis operadores de comparacin que podemos utilizar en Visual Basic .NET son los siguientes:

Cmo Utilizar los Operadores Lgicos


Utilizamos operadores lgicos para evaluar una o ms expresiones condicionales y devolver un nico valor Boolean True o False. En Visual Basic .NET, podemos utilizar seis operadores lgicos. La siguiente tabla muestra los seis operadores lgicos utilizados en Visual Basic .NET. Observe que todos los operadores excepto Not trabajan con dos expresiones, que tambin se denominan operandos.

Pag. 40 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Uso de Estructuras de Decisin


En nuestro programa, podemos desear que algunas secciones de su cdigo se ejecuten nicamente cuando se cumpla una determinada condicin. Esto se consigue utilizando una estructura de decisin. Esta leccin explica cmo utilizar las estructuras de decisin IfThen y Select Case. Estudiaremos cmo incorporar expresiones condicionales en estas estructuras.

Cmo Utilizar Instrucciones If...Then


En general, la instruccin IfThen se utiliza cuando el programa debe evaluar si una instruccin es verdadera o falsa. Las instrucciones IfThen evalan si una condicin es verdadera o falsa y dirigen el flujo del programa en consecuencia. Podemos utilizar la siguiente sintaxis en una lnea:

If condition Then clause


Tambin podemos utilizar la siguiente sintaxis en forma de bloque:

If condition Then Statements End If

Pag. 41 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Cmo Utilizar Instrucciones IfThen...Else


Las instrucciones IfThenElse son una extensin del concepto IfThen. Utilizando un bloque IfThenElse, podemos definir dos bloques de cdigo y que nuestro programa ejecute uno u otro dependiendo del resultado de una condicin. Si es verdadera ms de una de las condiciones de una estructura condicional, nicamente se ejecutarn las instrucciones de cdigo incluidas en la primera condicin verdadera. Una instruccin IfThenElse incluye los siguientes componentes: Una condicin que evala si es True o False Una o ms instrucciones que se ejecutan dependiendo del resultado de la prueba de la condicin Una instruccin End If en el caso de un bloque Para utilizar una instruccin IfThenElse, utilizar la siguiente sintaxis:

If condition Then statements Else statements End If

Pag. 42 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Cmo Utilizar Instrucciones IfThen...Elseif


Las instrucciones IfThenElseIf son como las instrucciones IfThenElse, excepto en que permiten que nuestro programa elija entre ms de dos alternativas. Para utilizar una instruccin IfThenElseIf, utilizar la siguiente sintaxis:

If condition Then statements ElseIf condition2 Then statements Else statements End If

Como Utilizar Instrucciones Select Case


La instruccin Select Case permite a nuestra aplicacin ejecutar uno o varios bloques de cdigo dependiendo del valor de una expresin de prueba. La instruccin Select Case funciona como una compleja estructura IfThenElse anidada, pero su mantenimiento es ms sencillo. La sintaxis para la instruccin Select Case es como sigue: Select Case testexpression [Case expressionlist-n] [statements-n1] . . . [Case Else] [elsestatement] End Select

Pag. 43 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Ejercicio Prctico N1
1. Disear el siguiente formulario

TxtUsu TxtPas

Btningresa

BtnSali

2. Declarar para todo el formulario las siguientes variables. Dim usu, contra As String Dim num As Integer 3. Digitar el siguiente codigo dentro del control txtpas evento (TextChanged). usu = Me.txtusu.Text contra = Me.txtpas.Text If usu = "Carlos" And contra = "123" Then Me.btningresar.Enabled = True Me.btningresar.Focus() num = 1 ElseIf usu = "Sunheri" And contra = "456" Then Me.btningresar.Enabled = True Me.btningresar.Focus() num = 2

Pag. 44 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


ElseIf usu = "Cecilia" And contra = "789" Then Me.btningresar.Enabled = True Me.btningresar.Focus() num = 3 End If 4. Digitar el siguiente cdigo dentro del control btningresar evento(Click). Select Case num Case 1 : MsgBox("Bienvenido Usuario Carlos", MsgBoxStyle.Information, "Sistema") Case 2 : MsgBox("Bienvenido Usuario Sunheri", MsgBoxStyle.Information, "Sistema") Case 3 : MsgBox("Bienvenido Usuario Cecilia", MsgBoxStyle.Information, "Sistema") End Select Me.txtusu.Clear() Me.txtpas.Clear() Me.txtusu.Focus() 5. Digitar el siguiente cdigo dentro del control btnsalir evento(Click). Me.Close()

Ejercicio Prctico N2
1. Disear el siguiente formulario

TxtNombre

TxtFecNac

BtnOk Lbldiain

lblmesin

BtnSali

lblaoin lbldiase Lblfecac 2. Digitar el siguiente cdigo dentro del evento Load del formulario.

Lblfecin

lblfecact.Text = "Hoy es " + (Now()).ToString

Pag. 45 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


3. Digitar el siguiente cdigo dentro del control btnsalir evento(Click).

If MsgBox("Desea salir del programa?", MsgBoxStyle.Question.YesNo, "Funciones Tipo fecha") = MsgBoxResult.Yes Then Me.Close()
4. Digitar el siguiente cdigo dentro del control 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

Pag. 46 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Pag. 47 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

TEMA 5
Como Utilizar el ListBox y ComboBox Propiedades ms utilizadas Ejemplos prcticos

Pag. 48 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Control ListBox y ComboBox


El control ListBox es un buen ejemplo de la categora de opciones. El control ListBox de Windows Forms muestra una lista de elementos de los cuales el usuario puede seleccionar uno o ms. Si el nmero total de elementos supera el nmero que puede mostrarse, automticamente se agrega una barra de desplazamiento al control ListBox. La siguiente tabla muestra una lista de las propiedades importantes del control ListBox:

Estos dos controles (ListBox y ComboBox) se parecen mucho, tanto en sus propiedades como en eventos, ya sea aadiendo elementos, eliminndolos, obteniendo el elementos seleccionado, etc. Hay dos formas de ingresar los elementos en estos controles, ya sea mediante un editor (en modo de diseo), o mediante cdigo (en tiempo de ejecucin). Instrucciones ms utilizadas para los dos controles. Para aadir un elemento ListBox1.Items.Add(Cadena de Texto) ComboBox1.Items.Add(Cadena de Texto) Para eliminar un elemento ListBox1.Items.Remove(Numero del Elemento a Eliminar) ComboBox1.Items.Remove(Numero del Elemento a Eliminar)

Pag. 49 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


Para saber que elemento se ha seleccionado ListBox1.SelectedIndex() ComboBox1.SelectedIndex() Para Saber el Numero de los Elementos de la Lista ListBox1.Items.Count() ComboBox1.Items.Count() Para seleccionar un Elemento ListBox1.SelectedIndex = Numero del Elemento a seleccionar ComboBox1.SelectedIndex = Numero del Elemento a seleccionar Elimina todos los elementos de la lista. ListBox1.Items.Clear() ComboBox1.Items.Clear() Ordena los elementos de la lista usar solo al tiempo de diseo. ListBox1.Sorted=True ComboBox1.Soter=True Regresa True o False si el dato se encuentra o no se encuentra en la lista. ListBox1.Items.Contains(dato) ComboBox1.Items.Contains(dato) Elimina el dato que esta en la posicin indicada. ListBox1.Items.RemoveAt(indice) ComboBox1.Items.RemoveAt(indice)

Ejercicio Practico N1
1. Disear el siguiente formulario

TxtNo m

LstNombre s

BtnAgrega r BtnEliminar 1 BtnEliminar 2 BtnLimpiar BtnBusca r TxtBusca r

Pag. 50 de 125

LblTotal

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


2. Digitar el siguiente cdigo dentro del control btnAgregar evento(Click). If Me.txtnom.Text.Trim <> "" Then Me.lstnombres.Items.Add(Me.txtnom.Text.Trim.ToUpper) Me.txtnom.Clear() Me.txtnom.Focus() Me.lbltotal.Text = Me.lstnombres.Items.Count Else MsgBox("Ingrese un Nombre", MsgBoxStyle.Information, "ListBox y ComboBox") Me.txtnom.Clear() Me.txtnom.Focus() End If 3. Digitar el siguiente cdigo dentro del control btnEliminar1 evento(Click). Me.lstnombres.Items.Remove(Me.lstnombres.SelectedItem) Me.lbltotal.Text = Me.lstnombres.Items.Count 4. Digitar el siguiente cdigo dentro del control btnEliminar2 evento(Click). If Me.lstnombres.SelectedIndex <> -1 Then Me.lstnombres.Items.RemoveAt(Me.lstnombres.SelectedIndex) Me.lbltotal.Text = Me.lstnombres.Items.Count Else MsgBox("Seleccione un Nombre", MsgBoxStyle.Information, "ListBox y ComboBox") End If 5. Digitar el siguiente cdigo dentro del control lstnombres evento(KeyDown). 'El evento Keydowm se dispara cuando estoy presionando una tecla If e.KeyCode = Keys.Delete Then Me.lstnombres.Items.Remove(Me.lstnombres.SelectedItem) Me.lbltotal.Text = Me.lstnombres.Items.Count End If 6. Digitar el siguiente cdigo dentro del control btnLimpiar evento(Click). Me.lstnombres.Items.Clear() Me.lbltotal.Text = Me.lstnombres.Items.Count 7. Digitar el siguiente cdigo dentro del evento Load del formulario. Me.lbltotal.Text = Me.lstnombres.Items.Count 8. Digitar el siguiente cdigo dentro del control btnBuscar evento(Click).

Pag. 51 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


If Me.lstnombres.Items.Contains(Me.txtbuscar.Text.ToUpper.Trim) = True Then MsgBox("El nombre si se encuentra", MsgBoxStyle.Information, "ListBox y ComboBox") Else MsgBox("El nombre no se encuentra", MsgBoxStyle.Information, "ListBox y ComboBox") End If

Ejercicio Practico N2 1. Disear el siguiente formulario

txtcurso

btnaadi

Btnagregar1 lstcurso Btnagregar2 Btnagregar3 Btnagregar4 Lstcurso2

Btnsalir 2. Digitar el siguiente cdigo dentro del control btnAadir evento(Click). lstcurso.Items.Add(txtcurso.Text) txtcurso.Text = "" txtcurso.Focus() 3. Digitar el siguiente cdigo dentro del control btnAgregar1 evento(Click). If lstcurso.SelectedIndex <> -1 Then lstcurso2.Items.Add(lstcurso.Text) lstcurso.Items.RemoveAt(lstcurso.SelectedIndex) End If 4. Digitar el siguiente cdigo dentro del control btnAgregar2 evento(Click). Dim i As Integer

Pag. 52 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


For i = 0 To lstcurso.Items.Count - 1 lstcurso2.Items.Add(lstcurso.Items(i)) Next lstcurso.Items.Clear() 5. Digitar el siguiente cdigo dentro del control btnAgregar3 evento(Click). If lstcurso2.SelectedIndex <> -1 Then lstcurso.Items.Add(lstcurso2.Text) lstcurso2.Items.RemoveAt(lstcurso2.SelectedIndex) End If 6. Digitar el siguiente cdigo dentro del control btnAgregar4 evento(Click). Dim i As Integer For i = 0 To lstcurso2.Items.Count - 1 lstcurso.Items.Add(lstcurso2.Items(i)) Next lstcurso2.Items.Clear() 7. Digitar el siguiente cdigo dentro del control btnSalir evento(Click). End

Pag. 53 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Pag. 54 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

TEMA 6
Cmo utilizar instrucciones ForNext Cmo utilizar instrucciones For EachNext

Cmo utilizar instrucciones DoLoop


Cmo utilizar instrucciones Exit

Pag. 55 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Bucles
Es probable que necesite frecuentemente repetir la ejecucin de un bloque de cdigo hasta que se cumpla una determinada condicin en los programas que desarrolle. Para repetir la ejecucin de un bloque de cdigo en Visual Basic .NET, es conveniente utilizar estructuras de bucle condicionales. Esta leccin describe cmo utilizar bucles condicionales para decidir si ejecutar o no cdigo y cundo hacerlo. Esta leccin tambin describe cmo decidir el uso de una instruccin Exit para salir de un bucle.

Cmo Utilizar Instrucciones ForNext


Podemos utilizar un bucle ForNext cuando conocemos el nmero de veces que es necesario que se ejecute un bucle. Una instruccin ForNext repite un conjunto de instrucciones un nmero especfico de veces. Un bucle ForNext se ejecuta un determinado nmero de veces fijado por un contador de bucles. El valor del contador de un bucle ForNext puede incrementarse o disminuir dependiendo de si step es positivo o negativo. La sintaxis de una instruccin ForNext es la siguiente:

For counter = start To end [Step step] [statements] [Exit For] Next [counter]

En el siguiente ejemplo, se utiliza una instruccin ForNext para recorrer el contenido de una pequea matriz. Se utiliza un cuadro de mensaje para mostrar cada nombre en pantalla. Los nombres se muestran otra vez, pero en orden inverso. Dim NamePos as Integer Dim Names(4) As String Names(0) = "Bob" Names(1) = "Tina" Names(2) = "Robert" Names(3) = "George" Names(4) = "Greg" For NamePos = 0 to 4 MessageBox.Show(Names(NamePos)) Next ' En reversa

Pag. 56 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


For NamePos = 4 to 0 Step -1 MessageBox.Show(Names(NamePos)) Next

Cmo Utilizar Instrucciones For EachNext


Una instruccin For EachNext ejecuta un bloque de instrucciones para cada elemento de una coleccin o una matriz. Una coleccin es un conjunto de objetos agrupados conjuntamente y a los que se hace referencia como una unidad. La sintaxis para la instruccin For EachNext es la siguiente: For Each elementvariable In collection ' Statement block to be executed for each value ' of elementvariable Next [elementvariable]

Ejercicio Practico N1
1. Disear el siguiente formulario

ListBox ListBox

TxtNu

ListBox

BtnCalcula BtnLimpia

2. Digitar el siguiente cdigo dentro del control btnCalcular evento(Click). Dim n, s, r As Integer n = Val(Me.txtnum.Text) For s = 1 To 12 Me.ListBox2.Items.Add(s & " =") Next For r = 1 To 12

Pag. 57 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


Me.ListBox3.Items.Add(n * r) Next 3. Digitar el siguiente cdigo dentro del control btnLimpiar evento(Click). Me.ListBox2.Items.Clear() Me.ListBox3.Items.Clear() Me.txtnum.Clear() Me.txtnum.Focus() Ejercicio Practico N2 1. Disear el siguiente formulario

btnLimpia

2. Digitar el siguiente cdigo dentro del control btnLimpiar evento(Click). Dim con As Control For Each con In Me.Controls If TypeOf con Is TextBox Then con.Text = "" If TypeOf con Is GroupBox Then Dim con2 As Control For Each con2 In con.Controls If TypeOf con2 Is TextBox Then con2.Text = "" Next End If Next End Sub

Como Utilizar Instruccin Do Loop


Puede utilizar instrucciones DoLoop para ejecutar un bloque de instrucciones un nmero de veces indefinido dependiendo del valor de tipo bolean de una condicin. Las instrucciones pueden repetirse mientras el valor de la condicin sea True o hasta que sea True. Generalmente, la condicin es el resultado de comparar dos valores, pero tambin puede ser cualquier expresin que da como resultado un valor de tipo Bolean (True o False). El bucle DO...LOOP es muy versatil. Con el se pueden crear gran variedad de bucles distintos, bucles que comprueben una condicin antes de ejecutar el bucle una vez, despus de la primera ejecucin y con conbinaciones con mientras (WHILE) que se cumple una condicin o hasta (UNTIL) que esa condicion se cumpla. la sintaxis de esta estructura es la siguiente: DO [WHILE | UNTIL (condicion)] Sentencias

Pag. 58 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


..... LOOP [WHILE | UNTIL (condicin)] Vamos a tratar de explicar esta sentencia de manera pausada para que sea ms fcil de entender. Lo que siempre tendremos en estos bucles es el DO y el LOOP, entre estos dos colocaremos las sentencias que queremos ejecutar en cada iteracin del bucle. Los bucles tienen que evaluar entre cada iteracin si se siguen ejecutando o no, para ello evala una condicin. Lo verstil de este bucle es que la condicin se puede expresar de muchas maneras distintas. Condicin expresada al lado del DO: en este caso la condicin se evala antes de empezar a ejecutarse el bucle. Condicin expresada al lado del LOOP: en este caso la condicin se evala despus de ejecutarse el bucle. Tiene como diferencia principal frente al otro mtodo que en este caso el bucle se ejecutar por lo menos una vez. Adems de poder expresar la condicin en estos dos sitios tambin se puede construir la condicin con un enunciado mientras (WHILE) o un enunciado hasta (UNTIL). Las diferencias semnticas de estas dos posibilidades se trasladan tambin a su manera de funcionar. Vamos a ver un par de ejemplos de este bucle para comprender su funcionamiento. El ejemplo pide constantemente el nombre del autor de la pgina y no para hasta que el nombre sea "Castilla". Tambin tiene el usuario la posibilidad de escribir "out", en ese caso, comprobado con un enunciado IF, se sale del bucle rompindolo con la sentencia EXIT DO, utilizada para romper bucles.

Ejercicio Practico N3 1. Disear el siguiente formulario

BtnWhil BtnUntil

2. Digitar el siguiente cdigo dentro del control btnWhile evento (Click). Dim entrada as String entrada = "" DO WHILE (entrada <> "diego") entrada = inputbox ("Dime el nombre del autor","seguridad","diego",2,3) if (entrada = "out") then msgbox ("salgo por la puerta de atras") exit do end if LOOP El siguiente ejemplo realiza una cuenta y entre cuenta y cuenta se muestra el valor de la cuenta actual en una ventanita donde sale un botn de Reintentar y otro de Cancelar. Si se pulsa reintentar se sigue ejecutando el bucle y si se pulsa Cancelar se sale por la puerta de atrs, de manera similar a como se sala en el ejemplo anterior, con EXIT DO.

3. Digitar el siguiente cdigo dentro del control btnUntil evento(Click).

Pag. 59 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


Dim cont Dim respuesta cont = 0 Do cont = cont + 1 respuesta = MsgBox(cont, 69, "Variable del bucle, con valor 6 se sale") If (respuesta = 2) Then MsgBox("Cuenta Cancelada", 16, "Cancelaste!") Exit Do End If Loop Until (cont = 6) Propuesto: 1.- Realizar una aplicacin, con un listbox y un button. El el listbox deber haber un listado de nombres, y cuando le de clic sobre el button, los nombres debern aparecer mediante un mensaje uno por uno.

2.- Crear una Estructura con Tres Campos: Codigo, Nombre, Nota. Luego almacenar 3 valores a cada campos y que se me muestre en un mensaje al dar clic en el botn Recorrer la Estructura.

Pag. 60 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Pag. 61 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

TEMA 7
Qu es una matriz? Cmo declarar una matriz unidimensional

Cmo utilizar matrices multidimensionales


Cmo cambiar el tamao de las matrices Qu son las estructuras? Cmo declarar estructuras Cmo utilizar estructuras
Pag. 62 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Arreglos
Arrays
Una de las formas en las que podemos agrupar varios datos es mediante los arrays (o matrices). Usando un array, podemos acceder a cualquiera de los valores que tenemos almacenado mediante un ndice numrico. Por ejemplo, si tenemos la variable discografa y queremos acceder al tercer disco, podramos hacerlo de la siguiente forma: discografa (3). Sabiendo esto, podemos comprobar que sera fcil recorrer el contenido de los arrays mediante un bucle For.

Qu tipos de datos se pueden usar para crear arrays?


Los tipos de datos de las variables usadas como array, pueden ser de cualquier tipo, dependiendo de lo que queramos guardar. Por ejemplo, si queremos guardar los nombres de los discos que tenemos, podemos usar un array del tipo String

Declarar Variables Como Arrays


Para poder indicarle al VB que nuestra intencin es crear un array podemos hacerlo de dos formas distintas, para este ejemplo crearemos un array de tipo Integer: 1- La clsica (la usada en versiones anteriores) Dim a() As Integer 2- La nueva forma introducida en .NET: Dim a As Integer()

Reservar Memoria Para Un Array


Para poder hacerlo tenemos que usar la instruccin ReDim: ReDim a(5) Al ejecutarse este cdigo, tendremos un array con capacidad para 6 elementos. Y son seis y no cinco, (como por lgica habra que esperar), porque en .NET Framework el ndice menor de un array siempre es cero y en Visual Basic, el ndice superior es el indicado entre parntesis. Por tanto el array a tendr reservada memoria para 6 valores de tipo Integer, los ndices seran desde 0 hasta 5 ambos inclusive. Adems de usar ReDim, que realmente sirve para "redimensionar" el contenido de un array, es decir, para volver a dimensionarlo o cambiarlo por un nuevo valor. Si sabemos con antelacin el tamao que contendr el array, podemos hacerlo de esta forma: Dim a(5) As Integer Con este cdigo estaramos declarando la variable a como un array de 6 elementos (de 0 a 5) del tipo Integer.

Pag. 63 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


Cuando indicamos la cantidad de elementos que contendr el array no podemos usar la segunda forma de declaracin que te mostr anteriormente: Dim a As Integer(5) ya que esto producira un error sintctico.

Asignar Valores A Un Array


Para asignar un valor a un elemento de un array, se hace de la misma forma que con las variables normales, pero indicando el ndice (o posicin) en el que guardar el valor. Por ejemplo, para almacenar el valor 15 en la posicin 3 del array a, haramos lo siguiente: a(3) = 15

Acceder A Un Elemento De Un Array


De igual forma, si queremos utilizar ese elemento que est en la posicin 3 para una operacin, podemos hacerlo como con el resto de las variables, pero siempre usando el parntesis y el nmero de elemento al que queremos acceder: i = b * a(3)

Los Lmites De Los ndices De Un Array


Como ya he comentado antes, el ndice inferior de un array, siempre es cero, esto es invariable, todos los arrays de .NET Framework empiezan a contar por cero. Pero el ndice superior puede ser el que nosotros queramos, aunque sin pasarnos, que la memoria disponible se puede agotar si pretendemos usar un valor exageradamente alto. Realmente el ndice superior de un array es 2^64 -1 (el valor mximo de un tipo Long)

Inicializar Un Array Al Declararla


Al igual que las variables normales se pueden declarar y al mismo tiempo asignarle un valor inicial, con los arrays tambin podemos hacerlo, pero de una forma diferente, ya que no es lo mismo asignar un valor que varios. Aunque hay que tener presente que si inicializamos un array al declararla, no podemos indicar el nmero de elementos que tendr, ya que el nmero de elementos estar supeditado a los valores asignados. Para inicializar un array debemos declarar ese array sin indicar el nmero de elementos que contendr, seguida de un signo igual y a continuacin los valores encerrados en llaves. Veamos un ejemplo:

Dim a() As Integer = {1, 42, 15, 90, 2}

Tambin podemos hacerlo de esta otra forma: Dim a As Integer() = {1, 42, 15, 90, 2}

Pag. 64 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


Usando cualquiera de estas dos formas mostradas, el nmero de elementos ser 5, por tanto los ndices irn desde 0 hasta 4.

Los Arrays Pueden Ser De Cualquier Tipo


En todos estos ejemplos estamos usando valores de tipo Integer, pero podramos hacer lo mismo si fuesen de tipo String o cualquier otro. En el caso de que sean datos de tipo String, los valores a asignar debern estar entre comillas dobles o ser variables de tipo String. Por ejemplo: Dim s As String() = {"Hola", "Mundo, ", "te", "saludo"}

Cambiar El Tamao De Un Array Y Mantener Los Elementos Que Tuviera.


Para poder conseguirlo, debemos usar ReDim seguida de la palabra clave Preserve, por tanto si tenemos la siguiente declaracin: Dim a() As Integer = {1, 2, 3, 4, 5} Y queremos que en lugar de 5 elementos (de 0 a 4) tenga, por ejemplo 10 y no perder los otros valores, usaremos la siguiente instruccin: ReDim Preserve a(10) A partir de ese momento, el array tendr 11 elementos (de 0 a 10), los 5 primeros con los valores que antes tena y los nuevos elementos tendrn un valor cero, que es el valor por defecto de los valores numricos. Si slo usamos ReDim a(10), tambin tendremos once elementos en el array, pero todos tendrn un valor cero, es decir, si no se usa Preserve, se pierden los valores contenidos en el array.

Eliminar Un Array De La Memoria.


Si en algn momento del programa queremos eliminar el contenido de un array, por ejemplo para que no siga ocupando memoria, ya que es posible que no siga ocupando memoria, podemos usar Erase seguida del array que queremos "limpiar", por ejemplo: Erase a Esto eliminar el contenido del array a. Si despus de eliminar el contenido de un array queremos volver a usarlo, tendremos que ReDimensionarlo con el mismo nmero de dimensiones que tena, ya que Erase slo borra el contenido, no la definicin del array.

Los Arrays Multidimensionales


La diferencia entre los arrays unidimensionales y los arrays multidimensionales es precisamente eso, que los arrays unidimensionales, (o normales, por llamarlos de alguna forma), slo tienen una dimensin: los elementos se referencian por medio de un solo ndice. Por otro lado, los arrays multidimensionales tienen

Pag. 65 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


ms de una dimensin. Para acceder a uno de los valores que contengan habr que usar ms de un ndice. La forma de acceder, por ejemplo en el caso de que sea de dos dimensiones, sera algo como esto: multiDimensional(x, y). Es decir, usaremos una coma para separar cada una de las dimensiones que tenga. El nmero mximo de dimensiones que podemos tener es de 32, aunque no es recomendable usar tantas, (segn la documentacin de Visual Studio .NET no deberan usarse ms de tres o al menos no debera ser el caso habitual), en caso de que pensemos que debe ser as, (que tengamos que usar ms de tres), deberamos plantearnos usar otro tipo de datos en lugar de una matriz. Entre otras cosas, porque el Visual Basic reservar espacio de memoria para cada uno de los elementos que reservemos al dimensionar un array, con lo cual, algo que puede parecernos pequeo no lo ser tanto.

Declarar Arrays Multidimensionales


Para declarar un array multidimensional, lo podemos hacer, (al igual que con las unidimensionales), de varias formas, dependiendo de que simplemente declaremos el array, que le indiquemos (o reservemos) el nmero de elementos que tendr o de que le asignemos los valores al mismo tiempo que la declaramos, veamos ejemplos de estos tres casos: Dim a1() As Integer Dim a2(,) As Integer Dim a3(,,) As Integer Dim b1(2) As Integer Dim b2(1, 6) As Integer Dim b3(3, 1, 5, 2) As Integer Dim c1() As Integer = {1, 2, 3, 4} Dim c2(,) As Integer = {{1, 2, 3}, {4, 5, 6}} ' este array se declarara como c3(3, 2, 1) Dim c3(,,) As Integer = { _ {{1, 2}, {3, 4}, {5, 6}}, _ {{7, 8}, {9, 10}, {11, 12}}, _ {{13, 14}, {15, 16}, {17, 18}}, _ {{19, 20}, {21, 22}, {23, 24}} _ } En estos ejemplos he usado arrays con una, dos y tres dimensiones. En el ltimo caso, he usado el continuador de lneas para que sea ms fcil "deducir" el contenido de cada una de las dimensiones... imagnate que en lugar de tres dimensiones hubiese usado ms... sera prcticamente imposible saber cuntos elementos tiene cada una de las dimensiones. Recuerda que cuando declaramos con a (1) realmente tenemos dos elementos el cero y el uno.

Pag. 66 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Ejercicio Practico N1 1. Disear el siguiente formulario.

TxtNombres BtnAgregar BtnMostrar BtnLimpiar

LstNombres

2. Declarar la siguiente variable para todo el formulario. Dim nombres(0) As String 3. Digitar el siguiente cdigo dentro del control btnAgregar evento(Click). If Me.txtnombre.Text.Trim <> "" Then nombres(UBound(nombres)) = Me.txtnombre.Text ReDim Preserve nombres(UBound(nombres) + 1) MsgBox("Guardado ...!", MsgBoxStyle.Information, "Arreglos") Me.txtnombre.Clear() Me.txtnombre.Focus() Else MsgBox("Por Favor Ingrese un Nombre", MsgBoxStyle.Information, "Arreglos") Me.txtnombre.Clear() Me.txtnombre.Focus() End If 4. Digitar el siguiente cdigo dentro del control btnMostrar evento(Click). Dim x As Integer For x = 0 To UBound(nombres) - 1

Pag. 67 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


Me.lstnombres.Items.Add(nombres(x)) Next ReDim nombres(0) 5. Digitar el siguiente cdigo dentro del control btnLimpiar evento(Click). Me.lstnombres.Items.Clear()

Estructuras
Podemos combinar elementos de datos de distintos tipos para crear una combinacin de tipos de datos nica denominada estructura. Las estructuras resultan tiles cuando deseamos que una nica variable guarde varias piezas de informacin relacionadas. Despus de declarar una estructura, podemos declarar variables de ese tipo. Definicin.-Una estructura es una combinacin de tipos de datos que se crea combinando otros tipos de datos. Las estructuras son de tipo valor (es decir, una variable de tipo estructura contiene los datos de la estructura, en lugar de una referencia a los datos como hace el tipo referencia). Las estructuras pueden tener datos, propiedades, mtodos y procedimientos y pueden invocar y manipular eventos. Ejemplo El uso ms simple y habitual de las estructuras es encapsular variables relacionadas, creando un tipo de datos definido por el usuario. Por ejemplo, es posible que deseemos guardar juntos el nombre, fecha de contratacin, cargo y salario de un empleado. Podramos utilizar varias variables para esta informacin, o podemos definir una estructura y utilizarla como la variable de un nico empleado. La ventaja de la estructura se hace patente cuando tiene muchos empleados y, por tanto, muchas instancias de la variable. El siguiente ejemplo muestra una estructura Employee simple: Public Structure Employee Public FirstName As String Public LastName As String Public HireDate As Date Public JobTitle As String Private Salary As Decimal End Structure Cmo Declarar Estructuras

Pag. 68 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Cmo Utilizar Las Estructuras

Ejercicio Practico N2 1. Agregar un Modulo a la aplicacin y escribir el siguiente cdigo. Module Module1 'Declaramos la estructura Public Structure DatosAlumnos Public codigo As Integer Public nombre As String Public curso As String Public promedio As Integer End Structure 'Declaramos un arrays que me almacenen los valores Public alumnos(0) As DatosAlumnos End Module 2. Luego disear el siguiente formulario txtnombre

txtcurso txtpromedi

btnagrega

btnconsultar

Pag. 69 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


3. Digitar el siguiente cdigo dentro del control btnAgregar evento(Click). 'Declarar una variable para manipular la estructura Dim mialumno As DatosAlumnos 'Asignar valores a la estructura With mialumno .codigo = UBound(alumnos) + 1 .nombre = txtnombre.Text .curso = txtcurso.Text .promedio = txtpromedio.Text End With 'Agregar valores al arrays de la estructura alumnos(UBound(alumnos)) = mialumno 'Redimensionar la matriz manteniendo la los valores ReDim Preserve alumnos(UBound(alumnos) + 1) 'Mostrar mensaje de Datos Agregados MsgBox("Datos Agregados...", MsgBoxStyle.Information, "Alumnos") 'Limpiamos las cajas de textos txtnombre.Text = "" txtcurso.Text = "" txtpromedio.Text = "" txtnombre.Focus() 4. Digitar el siguiente cdigo dentro del control btnConsultar evento(Click). Frmconsulta.Show() 5. Luego disearemos el siguiente formualrio.

txtconsult txtcodig o txtnomb txtcurs txtpromedi btninscribi btnconsulta

6. Luego en el evento load del formulario frmconsulta. Frminscribir.Hide()

Pag. 70 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


7. Digitar el siguiente cdigo dentro del control btnConsultar evento(Click). Dim mialumno As DatosAlumnos Dim x As String = txtconsulta.Text mialumno = alumnos(x - 1) txtcodigo.Text = mialumno.codigo txtnombre.Text = mialumno.nombre txtcurso.Text = mialumno.curso txtpromedio.Text = mialumno.promedio txtconsulta.Text = "" txtconsulta.Focus() 8. Digitar el siguiente cdigo dentro del control btnInscribir evento(Click). Frminscribir.Show() Me.Close()

Ejercicios de Arrays
Ejercicio 1
1. Esta aplicacin nos permite ingresar un nmero del 1 al 7 y visualizar el nombre del da de la semana.

2. Para esta aplicacin los nombres de los controles son los siguientes: El TextBox1 se llamara txtNumero El Label2 se llamara lblNombDia El Button1 se llamara btnOk El Button2 se llamara btnSalir

3. Declaramos variables a Nivel del Formulario. Dim Dias (6) As String Pag. 71 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


4. Luego en el evento load del formulario.

Dias(0) = "Lunes" Dias(1) = "Martes" Dias(2) = "Mircoles" Dias(3) = "Jueves" Dias(4) = "Viernes" Dias(5) = "Sbado" Dias(6) = "Domingo"
5. Digitar el siguiente cdigo dentro del control btnOK evento(Click).

Dim N As Integer N = Val(txtNumero.Text) If N >= 1 And N <= 7 Then lblNombDia.Text = "El nmero ingresado representa el da " + CStr(Dias(N -1)) Else MsgBox("Solo nmeros del 1 al 7", MsgBoxStyle.Information, "Por Favor") txtNumero.Text = "" txtNumero.Focus() End If
6. Digitar el siguiente cdigo dentro del control btnSalir evento(Click).

Me.Close()

Ejercicio 2
1. Desarrollar una aplicacin que permita realizar consultas de una serie de cursos que aparecern en un control ListBox. El usuario debe seleccionar un curso y se debe de presentar los horarios del laboratorio y de teora asi como los syllabus de los cursos. Lbl1

txtla lstcursos

txtte

Txtsyllabus Multiline=true btnsali r

Pag. 72 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


2. Declaramos variables a Nivel del Formulario. Declaramos los arrays a nivel formulario Dim hlab(4) As String Dim hteo(4) As String Dim syll(4) As String 3. Luego en el evento load del formulario. 'Asiganmos las Horas de Laboratorio hlab(0) = "Lun 08-10" hlab(1) = "Mar 08-10" hlab(2) = "Mier 18-20" hlab(3) = "Jue 08-10" hlab(4) = "Vie 18-20" 'Asignamos las horas de teoria hteo(0) = "Dom 09-12" hteo(1) = "Sab 09-12" hteo(2) = "Dom 13-17" hteo(3) = "Dom 09-12" hteo(4) = "Sab 13-17" 'Asignamos el valor a cada variable syll(0) = "Introduccion" & vbCrLf & "Uso de Controles" & vbCrLf & "El Uso del Lenguaje" syll(1) = "Introduccion" & vbCrLf & "El Control Data" & vbCrLf & "SQL y Access" syll(2) = "Introduccion" & vbCrLf & "Creacin de Base de Datos" & vbCrLf & "Creacin de Reportes" syll(3) = "Introduccion" & vbCrLf & "El Formulario" & vbCrLf & "Creacion de Programas" syll(4) = "Introduccion" & vbCrLf & "El Objeto Aplicacin" & vbCrLf & "Acceso a Base de Datos" 4. Digitar el siguiente cdigo dentro del control LstCursos evento(Click). lbl1.Enabled = True lbl1.Text = lstCursos.Text txtlab.Text = hlab(lstCursos.SelectedIndex) txtteo.Text = hteo(lstCursos.SelectedIndex) txtsyllabus.Text = syll(lstCursos.SelectedIndex) 5. Digitar el siguiente cdigo dentro del control btnSalir evento(Click). Me.Close()

Resolver
Desarrollar una aplicacin en la que seleccione un producto en un ListBox, y me salga el precio, stock, categora y Fecha de vencimiento como informacin del producto, pero esa informacin se visualice en un mensaje.

Pag. 73 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Pag. 74 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

TEMA 8
Cmo utilizar Sentencia Rnd() Cmo utilizar Procedimiento Sub y Function

Uso del Control Timer

Pag. 75 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Sentencia RND ()
Visual Basic.Net nos provee la Sentencia Rnd() la cual nos genera un valor aleatoriamente (random) entre 0.0 y 1.0 Private Sub BtnAleatorio_Click
TxtAl BtnAleatorio

Me.txtale.Text = Rnd() End Sub

Note que cada vez que da clic al botn se genera un nmero aleatorio(random) y se muestra en la caja de texto, pero cierre el programa y ejectelo de nuevo, notar que siempre da la misma secuencia de nmeros, es por ello que a estos nmeros se les llama pseudo-aleatorios. Si requiere obtener un nmero entero a partir del nmero generado, en vez de la fraccin, entonces multiplquelo por 10 y despus redondelo utilizando la funcin de redondeo de la clase Math.
TxtAl BtnAleatorio

Private Sub BtnAleatorio_Click Me.txtale.Text = Rnd() Me.txtale.Text = Math.Round(Me.txtale.Text * 100) End Sub

Randomize
La funcin Rnd crea siempre la misma secuencia de nmeros aleatorios, para crear un autntico nmero aleatorio utilice el mtodo Randomize la cual utiliza el reloj de la PC para crear un punto de inicio aleatorio el cual ser utilizado despus por la funcin Rnd().

TxtAl BtnAleatorio

Pag. 76 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


Private Sub BtnAleatorio_Click VBMath.Randomize() Me.txtale.Text = Rnd() End Sub El mtodo Randomize pertenece a la clase Microsoft.VisualBasic.VBMath

Rango
Si deseamos que nuestro valor circule dentro de un rango de nmeros determinados podemos hacer lo siguiente:

TxtIni BtnAleatori

TxtLi TxtAl

Dim num As Double Private Sub btnaleatorio_Click Randomize() num = Rnd() num = Math.Round(num * 100) If num >= CInt(Me.txtini.Text) And num <= CInt(Me.txtlim.Text) Then Me.txtale.Text = num End If End Sub

Pag. 77 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Procedimientos Sub
Un procedimiento Sub ejecuta acciones, pero no devuelve ningn valor. Puede tomar argumentos, como constantes, variables o expresiones, que le pasa el cdigo de llamda. La sintaxis para declarar un procedimiento Sub es la siguiente: Declarcin: [ Public | Private | Friend ] Sub <Nombre Subrutina> ([Lista de Parmetros]) <Sentencias> [Exit Sub] End Sub

Procedmientos Function
Un procedimiento Function consiste en una serie de instrucciones de Visual Basic delimitadas por las instrucciones Function y End Function. Cada vez que se llama a un procedimiento de este tipo, se ejecutan las instrucciones de ste, desde la primera instruccin ejecutable. La sintaxis para declarar un procedimiento Function es la siguiente: [ Public | Private | Friend ] Function <Nombre Funcin> ([Lista de Parmetros]) As <Tipo de Dato> <Sentencias> [Exit Function] End Function Ejercicio Practico N1 1.- Agregar una clase la cual se llamara CLSOPERACIONES Public Class clsoperaciones Public Function promedio(ByVal nota1 As Short, ByVal nota2 As Short, ByVal nota3 As Short) As Short promedio = (nota1 + nota2 + nota3) / 3 End Function Public Function parimpar(ByVal numero As Integer) As String If numero Mod 2 = 0 Then parimpar = "Es par" Else parimpar = "Impar" End If Pag. 78 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


End Function Public Sub limpiar(ByVal frm As Form) Dim con As Control For Each con In frm.Controls If TypeOf con Is TextBox Then con.Text = "" If TypeOf con Is GroupBox Or TypeOf con Is Panel Then Dim con2 As Control For Each con2 In con.Controls If TypeOf con2 Is TextBox Then con2.Text = "" If TypeOf con2 Is GroupBox Or TypeOf con2 Is Panel Then Dim con3 As Control For Each con3 In con2.Controls If TypeOf con3 Is TextBox Then con3.Text = "" Next End If Next End If Next End Sub End Class

El Control Timer
El control Timer es un temporizador que nos permite ejecutar instrucciones de cdigo, rutinas,

funciones etc..., cada cierto intervalo de tiempo, es decir el tiempo que nosotros le establezcamos. El control Timer es un control que es invisible en tiempo de ejecucin, esto quiere decir que no tiene interfaz grfica, solo es visible cuando lo agregamos a un formulario y estamos en modo de diseo , pero en modo de ejecucin este funcionar como tal pero no estar visible en el formulario. La propiedad mas importante de este control es la propiedad Interval Esta propiedad es la que determina el intervalo en el que ejecutar las instrucciones que estn en el
evento llamado Timer

El Evento Timer es el nico evento que posee este control Antes de hacer un ejemplo, hay que aclarar que la propiedad Interval est expresada en milisegundos, esto quiere decir que por ejemplo si quiero ejecutar una instruccin cada 3 segundos por decir un ejemplo, la propiedad Interval debe estar en 3000, si quisiera ejecutarla cada 10 segundos en 10000 etc... Propiedades Enabled: Obtiene o establece si el temporizador esta funcionando. Interval: Obtiene o establece el tiempo, en milisegundos, entre los pasos de temporizador. Pag. 79 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


Mtodos: Start: Inicia el temporizador Stop: Detiene el temporizador Eventos: Tick: Se produce cuando ha transcurrido el intervalo de tiempo especificado y est activado el temporizador. Ejercicio Practico N2

Pc2 Pc1

Pc3

Label

Agregar tambin un Control Timer de su cuadro de herramientas. Y en su propiedad Interval=1000 Y Enabled=False Private Sub Timer1_Tick Static sw As Integer If sw = 0 Then pc1.Visible = True pc2.Visible = False pc3.Visible = False sw = 1 Else If sw = 1 Then pc1.Visible = False pc2.Visible = True pc3.Visible = False sw = 2 Else Pag. 80 de 125 Private Sub Form2_Load Timer1.Enabled = True End Sub If sw = 2 Then pc1.Visible = False pc2.Visible = False pc3.Visible = True sw = 0 End If End If End If End Sub

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Pag. 81 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

TEMA 9
Cmo utilizar RadioButton Cmo utilizar CheckBox

Uso de la Propiedad Checked


Uso del Try...Catch

Pag. 82 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

RadioButton y CheckBox
CheckBox
Un control CheckBox muestra una Check cuando esta activado, el checked desaparece cuando esta desactivado. Utilice este control para ofrecer al usuario una opcin de tipo Verdadero o Falso o S o No. Puede utilizar controles CheckBox en grupos para mostrar mltiples opciones entre las cuales el usuario puede seleccionar una o ms.

Propiedades
Name: Generalmente usaremos el prefijo Chk. Appearance: Controla la apariencia del control, puede ser: Normal(como casilla) o Button(como botn de comando) AutoCheck: Cambia de estado cada vez que se da clic al botn. Checked: Indica si el checkbox ha sido seleccionado o no. CheckAlign : Controla la alineacin del checkbox. Hay 9 opciones. CheckState: Devuelve el estado del checkbox, puede ser: Unchecked(sin marcar), Checked(marcado), o Indeterminate(gris). ThreeState: Habilita o deshabilita el estado in determinado del checkbox cada vez que se da el tercer clic.

RadioButton
Un control OptionButtton muestra una opcin que se puede activar o desactivar El control OptionButton se utiliza en un grupo de opciones para mostrar opciones entre las cuales el usuario slo puede seleccionar una.

Propiedades
Name: Generalmente usaremos el prefijo Rbn. Appearance: Controla la apariencia del control, puede ser: Normal(como botn de opcin) o Button(como botn de comando). AutoCheck: Cambia de estado cada vez que se da clic al botn. CheckAlign: Controla la alineacin del botn. Hay 9 opciones. Checked: Indica si el botn ha sido seleccionado o no.

Pag. 83 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Crear el siguiente Procedimiento:


Public Sub Fuente() If chknegrita.Checked = True AndAlso chksubrayado.Checked = True AndAlso

chkcursiva.Checked = True Then lblTexto.Font FontStyle.Underline) ElseIf chknegrita.Checked = True AndAlso chksubrayado.Checked = True Then lblTexto.Font = New Font(lblTexto.Font, FontStyle.Bold + FontStyle.Underline) ElseIf chknegrita.Checked = True AndAlso chkcursiva.Checked = True Then lblTexto.Font = New Font(lblTexto.Font, FontStyle.Bold + FontStyle.Italic) ElseIf chknegrita.Checked = False AndAlso chksubrayado.Checked = True AndAlso chkcursiva.Checked = True Then lblTexto.Font = New Font(lblTexto.Font, FontStyle.Underline + FontStyle.Italic) ElseIf chknegrita.Checked = False AndAlso chksubrayado.Checked = True Then lblTexto.Font = New Font(lblTexto.Font, FontStyle.Underline) ElseIf chknegrita.Checked = False AndAlso chkcursiva.Checked = True Then Pag. 84 de 125 = New Font(lblTexto.Font, FontStyle.Bold + FontStyle.Italic +

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


lblTexto.Font = New Font(lblTexto.Font, FontStyle.Italic) ElseIf chknegrita.Checked = True Then lblTexto.Font = New Font(lblTexto.Font, FontStyle.Bold) Else lblTexto.Font = New Font(lblTexto.Font, FontStyle.Regular) End If End Sub

Private Sub chknegrita_CheckedChanged Fuente() End Sub

Private Sub chksubrayado_CheckedChanged Fuente() End Sub

Private Sub chkcursiva_CheckedChanged Fuente() End Sub

Private Sub Form1_Load cbocolor.Items.Add("Negro") cbocolor.Items.Add("Rojo") cbocolor.Items.Add("Azul") cbocolor.Items.Add("Verde") cbocolor.Items.Add("Rosado") cbocolor.Items.Add("Blanco") cbocolor.Items.Add("Amarillo") cbocolor.Items.Add("Anaranjado") cbocolor.SelectedIndex = 0 End Sub

Pag. 85 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Private Sub cbocolor_SelectedIndexChanged Dim Index As Integer Index = cbocolor.SelectedIndex Select Case Index Case 0 : lblTexto.ForeColor = System.Drawing.Color.Black Case 1 : lblTexto.ForeColor = System.Drawing.Color.Red Case 2 : lblTexto.ForeColor = System.Drawing.Color.Blue Case 3 : lblTexto.ForeColor = System.Drawing.Color.Green Case 4 : lblTexto.ForeColor = System.Drawing.Color.Pink Case 5 : lblTexto.ForeColor = System.Drawing.Color.White Case 6 : lblTexto.ForeColor = System.Drawing.Color.Yellow Case 7 : lblTexto.ForeColor = System.Drawing.Color.Orange End Select End Sub

Agregar otro formulario

TxtNombre UpEdad ChkCasado RbNoche

RbMaana

RbTarde LstCasado LstNombre

LstEdad

LstTurno

Pag. 86 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Public Class Form2 Dim casado, turno, nombre As String Dim edad As Byte

Private Sub btnagregar_Click

edad = Me.UpEdad.Value nombre = Me.TxtNombre.Text.ToUpper If Me.ChkCasado.Checked = True Then casado = "Si" Else casado = "No" End If

If Me.RbMaana.Checked = True Then turno = "Maana" ElseIf Me.RbTarde.Checked = True Then turno = "Tarde" ElseIf Me.RbNoche.Checked = True Then turno = "Noche" End If

Me.LstNombre.Items.Add(nombre) Me.LstEdad.Items.Add(edad.ToString) Me.LstTurno.Items.Add(turno) Me.LstCasado.Items.Add(casado) End Sub End Class

Pag. 87 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Agregar otro formulario

RbCe

RbFa LblA

LblDe

LblRes TxtGrados

BtnConvertir

Private Sub btnconvertir_Click If Me.RbCe.Checked = False And Me.RbFa.Checked = False Then MsgBox("Seleccione el Tipo de Conversion", MsgBoxStyle.DefaultButton1) End If

Dim grados, r As Double grados = CInt(Me.txtgrados.Text) If Me.RbCe.Checked = True Then r = (grados * 9 / 5) + 32 Else r = (grados - 32) * 5 / 9 End If Me.lblresul.Text = r.ToString End Sub

Private Sub RbCe_CheckedChanged Me.lblDE.Text = "Grados C:" Me.lblA.Text = "Grados F:" Me.txtgrados.Clear() Me.lblresul.Text = "" End Sub Pag. 88 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Private Sub RbFa_CheckedChanged Me.lblDE.Text = "Grados F:" Me.lblA.Text = "Grados C:" End Sub

Private Sub txtgrados_TextChanged Me.btnconvertir.Enabled = Len(Trim(Me.txtgrados.Text)) > 0 End Sub

Try...Catch
Cuando durante la ejecucin de un programa se produce un error que impide su continuacin, Visual Basic lanza una excepcin que hace que se visualice un mensaje acerca de lo ocurrido y se detenga la ejecucin. Cuando esto ocurra, si no deseamos que la ejecucin del programa se detenga, habr que utilizar Try para poner en alerta al programa acerca del codigo que puede lanzar una excepcin y utilizar Catch para capturar y manejar cada excepcin que se lance. Por ejemplo, el cdigo que se muestra a continuacin: Dentro de un Button escribimos Private Sub Button1_Click Dim dato1, dato2, dato3 As Integer dato1 = dato1 + 1 dato3 = dato1 / dato2 dato2 = dato2 + 1 End Sub La informacin dad por el mensaje anterior, adems del tipo de excepcin, especifica que ha ocurrido una divisin por cero en la lnea n Modifiquemos este cdigo con la intencin de capturar la excepcin lanzada. El resultado puede ser el siguiente: Private Sub Button1_Click Dim dato1, dato2, dato3 As Integer Try dato1 = dato1 + 1 Pag. 89 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


dato3 = dato1 / dato2 Provoca Divisin por cero dato2 = dato2 + 1 Catch ex As Exception MessageBox.Show(ex.Message) Mensaje para el Usuario Finally MsgBox("Fin de la Instruccin Try", MsgBoxStyle.Information, "Mensaje") End Try End Sub

Pag. 90 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Pag. 91 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

TEMA 10
Cmo utilizar OpenFileDialog Cmo utilizar SaveDialog

Cmo utilizar ColorDialog


Cmo utilizar FontDialog Como usar la Barra de Progreso (ProgressBar)

Pag. 92 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Control OpenFileDialog
Este uno de los nuevos controles que se encuentra en esta nueva versin y no te preocupes, que son fciles de usar, primero familiarcese con la imagen del control, que es el siguiente.

Este control nos permite abrir mltiples tipos de archivos, ya sean de imgenes, sonido, texto, etc. para abrir cada tipo de archivo necesitar utilizar un *.ocx o un *.dll que pueda soportar esa extensin, ahora veremos su sintaxis de utilizacin: Sintaxis NombreDelControl.Filter() = .Tipo de Archivo (*.ExtensinDelArchivo)|*. ExtensinDelArchivo. Por ejemplo, para abrir archivos de solo texto. OpenFileDialog1.Filter () = "Archivos de Texto (*.txt)|*.txt"

Control SaveFileDialog
Este nuevo control nos permite guardar mltiples archivos, ya sean de imgenes, textos, etc. Este es el siguiente icono del archivo.

Sintaxis NombreDelControl.Filter() = .Tipo de Archivo (*.ExtensinDelArchivo)|*. ExtensinDelArchivo. Ejemplo, para guardar un archivo de imagen: SaveFileDialog1.Filter () = "Imgenes JPG (*.jpg)|*.jpg " SaveFileDialog1.Title = "Guarda la imagen como..." 'En Una Sola Lnea este cdigo PictureBox1.Image.Save (SaveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Jpeg) Y listo esta imagen mostrada en un Picture Box se guardar en el lugar que le indiquemos, que fcil no?. Como se han dado cuenta para el filtro se utiliza igual la sintaxis del control anterior, la propiedad FileName del control SaveFileDialog1, tiene el nombre y la ruta del archivo a guardar y para decirle a la PC como que lo vamos a guardar, mejor dicho mediante que extensin lo guardamos, utilizamos el ImageFormat.Jpeg, que es la extensin de una imagen comprimida, si queremos BMP, seleccionaremos BMP en ImageFormat, as de sencillo. Pag. 93 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Control FontDialog
Este nuevo control nos permite visualizar y cambiar el tipo de fuente de letra, tamao, estilo, su utilizacin es ms fcil que ponerse unas medias, su sintaxis es la siguiente:

Sintaxis NombreDelControl.ShowDialog() Por ejemplo para cambiar la fuente a un TextBox en tiempo de ejecucin. FontDialog1.ShowDialog () TextBox1.Font = FontDialog1.Font

Control ColorDialog
Este nuevo control nos permite visualizar y cambiar el color a varios controles, tambin es muy fcil de usar, su sintaxis es la siguiente:

Sintaxis NombreDelControl.ShowDialog() Por ejemplo para cambiar el color de la letra de un control TextBox en tiempo de ejecucin. ColorDialog1.ShowDialog () TextBox1.ForeColor = ColorDialog1.Color

Ejercicio Prctico 1

btnAbrir btnGuardar

PictureBox1

Pag. 94 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Private Sub btnabrir_Click Me.OpenFileDialog1.Filter = "Archivo de Imagenes(*.jpg;*.bmp)|*.jpg;*.bmp" If Me.OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then Me.PictureBox1.Image = New Bitmap(Me.OpenFileDialog1.OpenFile) Me.PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage End If End Sub Private Sub btnguardar_Click Dim nombreimagen As String If Not Me.PictureBox1.Image Is Nothing Then Me.SaveFileDialog1.Filter = "Imagenes(*.jpg)|*.jpg|Mapa de Bits(*.bmp)|*.bmp" Me.SaveFileDialog1.Title = "Guardar Imagen Como..." If Me.SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then nombreimagen = Me.SaveFileDialog1.FileName If (nombreimagen.EndsWith("jpg")) Then Me.PictureBox1.Image.Save(nombreimagen, System.Drawing.Imaging.ImageFormat.Jpeg) If (nombreimagen.EndsWith("bmp")) Then Me.PictureBox1.Image.Save(nombreimagen, System.Drawing.Imaging.ImageFormat.Bmp) End If End If End If End If End Sub Ejercicio Prctico N2

btnAbrir

RichTextBox1

btnGuardar

btnFuente btnColor

Pag. 95 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Private Sub BtnAbrir_Click Me.OpenFileDialog1.Filter = "Documento de texto (*.txt)|*.txt" If Me.OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then Me.RichTextBox1.LoadFile(Me.OpenFileDialog1.OpenFile, RichTextBoxStreamType.PlainText) Else Exit Sub End If End Sub Private Sub BtnGuardar_Click Dim nombretexto As String If Not Me.RichTextBox1.Text = "" Then Me.SaveFileDialog1.Filter = "Documento de Texto(*.txt)|*.txt" Me.SaveFileDialog1.Title = "Guardar Documento Como..." If Me.SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then nombretexto = Me.SaveFileDialog1.FileName If (nombretexto.EndsWith("txt")) Then Me.RichTextBox1.SaveFile(nombretexto, RichTextBoxStreamType.PlainText) End If End If End If End Sub Private Sub BtnFuente_Click If Me.FontDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then Me.RichTextBox1.Font = Me.FontDialog1.Font End If End Sub Private Sub BtnColor_Click If Me.ColorDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then Me.RichTextBox1.ForeColor = Me.ColorDialog1.Color End If End Sub

Pag. 96 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

ProgressBar
Un objeto ProgressBar es una barra de progreso; esto es, un rectngulo de una longitud arbitraria, del cual, en un instante determinado, estar coloreado un tanto por ciento en funcin de la cantidad ya finalizada de un proceso por el que estamos esperando. Es una forma de indicar al usuario que una aplicacin no esta bloqueada, sino que esta realizando una tarea larga. La propiedades Maximum y Minimum definen el intervalo de valores que representaran el progreso de una tarea. Normalmente la propiedad Minimum se pone a valor cero y Maximun al valor que indica que la tarea ha terminado. La propiedad value representa el progreso que la aplicacin realiza para terminar la operacin. Esta propiedad se puede modificar directamente, o se puede utilizar la propiedad Step para especificar el valor con que se incrementara y, despus, llamar el mtodo PerformStep para incrementar ese valor, o se puede utilizar el mtodo increment. El mtodo Increment permite incrementar el valor de la propiedad Value una cantidad especfica; este mtodo es similar a utilizar la propiedad Step con el mtodo PerformStep. Ejercicio Prctico N1
lblprogres btnComenz Pb1 tkbavanc lblprogr

lblTotal

BtnSuma

Private Sub Timer1_Tick Me.pb1.Value = Me.pb1.Value + 1 Me.lblprogreso.Text = Me.pb1.Value & " %" If Me.pb1.Value = 100 Then Me.Timer1.Stop() End If End Sub Private Sub btncomenzar_Click Me.Timer1.Enabled = True End Sub Private Sub tkbavance_Scroll Pag. 97 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


Me.lblprogre.Text = Me.tkbavance.Value End Sub Private Sub btnsumar_Click Me.lblTotal.Text = Me.NumericUpDown1.Value + Me.NumericUpDown2.Value End Sub

Pag. 98 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

TEMA 11 1
Cmo utilizar MonthCalendar Cmo utilizar DateTimePicker

Diferencia entre MonthCalendar y DateTimePicker


Funcin del ToolTip Cmo utilizar el NotifyIcon

Pag. 99 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

El Control DateTimePicker
El control DateTimePicker permite seleccionar una fecha de manera conveniente. Cuando se accede a este objeto, muestra la fecha actual y, mediante flechas de desplazamiento que pertenecen al control, muestra calendarios que pueden recorrerse mes a mes y ao a ao. Efectuando un clic sobre un nmero de da, el control se cierra, pudindose extraer este dato a travs de la Propiedad Text o la Propiedad Value, para que se pueda utilizar a posteriori. Asimismo, la Propiedad Value puede extenderse para extraer solo partes del dato obtenido, es decir, solo el nmero del da, el nmero del mes o el nmero del ao, entre muchas otras funcionalidades.

MonthCalendar
El control MonthCalendar de formularios Windows Forms muestra una intuitiva interfaz grfica de usuario para que los usuarios vean y establezcan informacin relativa a fechas. El control muestra una cuadrcula que contiene los das numerados del mes actual, organizados en columnas bajo los das de la semana. Para seleccionar un mes diferente, puede hacer clic en los botones de fecha a los lados del ttulo del mes. A diferencia del control DateTimePicker, de apariencia similar, con este control es posible seleccionar un intervalo de fechas; sin embargo, el control DateTimePicker le permite establecer horas y fechas.

ToolTip
El componente ToolTip de los formularios Windows Forms muestra texto cuando el usuario apunta a otros controles. Un ToolTip puede asociarse a cualquier otro control. Por ejemplo, este control se puede utilizar para ahorrar espacio en un formulario, puede mostrar un pequeo icono en un botn y utilizar un control ToolTip para explicar la funcin del botn.

NotifyIcon
El componente NotifyIcon de formularios Windows Forms muestra iconos en el rea de notificacin de estado de la barra de tareas para procesos que se ejecutan en segundo plano y que, de otro modo, no tendran interfaz de usuario. Un ejemplo sera un programa de proteccin antivirus al que se puede tener acceso si se hace clic en un icono situado en el rea de notificacin de estado de la barra de tareas.

Propiedades
Icon: Obtiene o establece el icono actual. Text: Obtiene o establece el texto de la informacin sobre herramientas que se muestra cuando el mouse pasa sobre un icono del rea de estado. Pag. 100 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


Visible: Obtiene o establece un valor que indica si el icono es visible en la bandeja del sistema de Windows.

Eventos
Click: Se produce cuando el usuario hace clic en el icono del rea de estado. DoubleClick: Se produce cuando el usuario hace doble clic en el icono del rea de notificacin de estado de la barra de tarea. MouseDown: Se produce cuando el usuario presiona el botn del mouse mientras el puntero esta sobre el icono del rea de notificacin de estado de la barra de tareas. MouseMove: Se produce cuando el usuario mueve el mouse mientras el puntero esta sobre el icono del rea de notificacin de estado de la barra de tareas. MouseUp: Se produce cuando el usuario suelta el botn del mouse mientras el puntero esta sobre el icono del rea de notificacin de estado de la barra de tareas.

Ejercicio Prctico N1

DtpFecha

txtfecha txtao

txtdia txtmes

Txt1

btnsum a txtsuma

Private Sub Dtpfecha_ValueChanged_1 txtfecha.Text = Format(dtpfecha.Value, "Short Date") txtao.Text = dtpfecha.Value.Year txtdia.Text = dtpfecha.Value.Day txtmes.Text = dtpfecha.Value.Month End Sub Private Sub btnsuma_Click Pag. 101 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


txtsuma.Text = Format(DateAdd(DateInterval.Day, CType(txt1.Text, Integer), dtpfecha.Value), "Short Date") End Sub Ejercicio Prctico N2

MounthCalendar

Txtfecha1 Txtfecha2

btntooltip

btnnotify

Agregar un control ToolTip y NotifyIcon de su cuadro de herramientas. 1. Para mostrar mas de 2 meses a mas tenemos que modificar la propiedad CalendarDimensions del control MonthCalendar; el cual nos pide dos valores (a;b) el cual a vendra a ser el nmero de columnas a mostrar y b el nmero de filas a mostrar Private Sub MonthCalendar1_DateChanged txtfecha1.Text = MonthCalendar1.SelectionRange.Start txtfecha2.Text = MonthCalendar1.SelectionRange.End End Sub Private Sub btntooltip_MouseMove ToolTip1.SetToolTip(btntooltip, "Save changes") End Sub Private Sub btnnotify_Click NotifyIcon1.Visible = True NotifyIcon1.Text = "Antivirus program" End Sub Pag. 102 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Pag. 103 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

TEMA 12
Cmo crear un Formulario MDI Cmo agregar Mens Cmo agregar un Men Contextual Cmo agregar un Barra de Estado Cmo agregar una Barra de Herramientas

Pag. 104 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Formulario MDI Padre


Para crear un formulario MDI padre solo hay que configurar la propiedad IsMDIContainer del formulario a True. Formulario MDI Hijo Para crear un formulario MDI hijo hay que configurar la propiedad Parent(disponible solo en tiempo de ejecucin) del formulario hijo apuntando al formulario padre y luego usar el mtodo Show para mostrarlo. Organizando Formularios MDI Hijo Si es que se desea organizar los formularios MDI hijos se debe usar el mtodo LayoutMDI del formulario MDI padre, junto con una constante de tipo MDILayaout, que tiene 4 valores: ArrangeIcons, Cascade, TitleHorizontal y TitleVertical.

El Editor de Men
El Men o Barra de Men es la segunda lnea de cualquier ventana Windows, donde pueden verse distintos nombres. La Barra de Men es un componente de un formulario. Para crear un men debe usarse el Editor de Men, que se encuentra en la Barra de Herramientas. Para colocar el cursor de escritura en una u otra casilla, puede hacerse bien con las flechas. Para pasar a la siguiente lnea de edicin (crear una nueva palabra), basta con pulsar Enter. En la versin anterior de visual Basic, se llamaba Men, pero ahora se llama MenuStrip, viene a hacer el mismo control pero con otro nombre, a diferencia del control anterior en VB 6.0, este no utiliza un editor de mens, solo nos basta escribir en el men y darle entrar cada vez que ya queremos que grabe ese men, como en la figura que esta a continuacin.

Pag. 105 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Ahora, si deseas agregar una tecla de acceso rpido, debes escribir el smbolo y delante de la letra a la que deseas acceder. Y seleccionar en la propiedad ShortcutKeys, la tecla con la que deseas acceder. Si te sitas sobre una lnea ya editada, y haciendo clic sobre el botn con flecha hacia la izquierda, puedes agregar submens.

Creacin de un Men Contextual


Un men contextual es un men emergente (flotante) que se muestra sobre un formulario, independientemente de la barra de mens. Para mostrar un men contextual el usuario debe pulsar el botn derecho del ratn sobre el formulario. Para crear un men contextual, realiza lo siguiente: 1. Selecciona el control ContextMenuStrip de la caja de herramientas y colcala en el formulario. 2. Se mostrar el modelo de diseo para tu men contextual.

3. En la propiedad ContextMenu del formulario, seleccionaremos que control de men contextual queramos que nos muestre.

Control ToolBar
Este control tambin no ha cambiado mucho en su utilizacin, necesita un control ImageList para almacenar las imgenes que se van a mostrar en los botones, lo nico que cambia es un poco en su codificacin pero eso ya lo veremos, como ya les dije este, tambin es un control de coleccin as que tambin tendr un editor de colecciones, veamos la ventana de propiedades de este control para que me entiendan. ImageList.- En esta propiedad seleccionaremos de qu contenedor (Control de coleccin) utilizaremos las imgenes para los botones. Buttons.- En esta propiedad empezaremos a insertar los botones Pag. 106 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


que queramos que se muestre en nuestro Toolbar. Una vez de dar clic en la propiedad Buttons del control Toolbar nos aparecer el editor de men, que es la siguiente figura.

Las propiedades mas utilizadas en el editor de los botones son: Name.- Si queremos ponerle un nombre especial o identificativo al botn. ImageIndex.- Aqu seleccionaremos el ndice o la imagen que queramos que se muestre en el botn, estas imgenes son las que estn en el control ImageList. ToolTipText.- Aqu escribiremos el texto que se va a mostrar cuando ubicaremos el Mouse por el botn.

Pag. 107 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Ejercicio Prctico N1
MenSt ToolBar

Disear los siguientes Mens

Agregar un Control ImageList y agregarle a este control 6 imgenes. Private Sub ToolBar1_ButtonClick Dim x As Integer x = Me.ToolBar1.Buttons.IndexOf(e.Button) Select Case x Case 0 : MsgBox("Nuevo Documento", MsgBoxStyle.Information, "ToolBar") Case 1 : MsgBox("Abre un Documento", MsgBoxStyle.Information, "ToolBar") Case 2 : MsgBox("Graba un Nuevo Documento", MsgBoxStyle.Information, "ToolBar") Case 3 : MsgBox("Imprime un Nuevo Documento", MsgBoxStyle.Information, "ToolBar") Case 4 : MsgBox("Elimina un Nuevo Documento", MsgBoxStyle.Information, "ToolBar") Case 5 : MsgBox("Ventana de Ayuda", MsgBoxStyle.Information, "ToolBar") Case 6 : MsgBox("Salir del Sistema", MsgBoxStyle.Information, "ToolBar") End Select End Sub Pag. 108 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

ToolStrip(Barra de Herramientas)
Desde el punto de vista de la jerarqua de clases de biblioteca .Net, una barra de herramientas es un objeto ToolStrip que acta como contenedor para los objetos de las clases ToolStripButton, ToolStripLabel, etc.

StatusStrip(Barra de Estado)
Desde el punto de vista de la jerarqua de clases de la biblioteca .Net, una barra de estado es un objeto StatusStrip que acta como contenedor para los objetos de las clases ToolStripStatusLabel, ToolStripProgressBar, ToolStripDropDownButton y ToolStripSplitButton. Para aadir la barra de estado, arrastre desde la caja de herramientas de Visual Studio .Net un control StatusStrip sobre el formulario.

Ejercicio Prctico N1

stbLabel1

stbLabel3

Private Sub Form1_Load Me.stblabel1.Text = Format(Now, "dd - MMM - yyyy") Me.Timer1.Enabled = True End Sub Private Sub Timer1_Tick Me.stblabel3.Text = Format(Now, "hh:mm:ss tt") End Sub

Pag. 109 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Ejercicio Prctico N2

Agregamos los siguientes controles

Agregamos los siguientes SubMens

Pag. 110 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


Agregar los siguientes mens para el ContexMenuStrip

1.- Cdigo para los SubMens del Men Archivo.

Private Sub EjercicioPracticoN1ToolStripMenuItem_Click EjercicioPracticoN1ToolStripMenuItem.Click Form1.MdiParent = Me Form1.Show() End Sub Private Sub EjercicioPracticoN2ToolStripMenuItem_Click EjercicioPracticoN2ToolStripMenuItem.Click Form2.MdiParent = Me Form2.Show() End Sub Private Sub EjercicioPracticoN3ToolStripMenuItem_Click EjercicioPracticoN3ToolStripMenuItem.Click Form3.MdiParent = Me Form3.Show() End Sub Private Sub EjercicioPracticoN4ToolStripMenuItem_Click EjercicioPracticoN4ToolStripMenuItem.Click Form4.MdiParent = Me Form4.Show() End Sub Private Sub SalirDelSistemaToolStripMenuItem1_Click SalirDelSistemaToolStripMenuItem1.Click Dim x As String x = MsgBox("Desea Salir del Sistema", MsgBoxStyle.YesNo + MsgBoxStyle.Information, "Sistema") If x = vbYes Then Me.Close() End If End Sub Pag. 111 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


2.- Cdigo para los SubMens del Men Ordenar

Private Sub VerticalToolStripMenuItem_Click Me.LayoutMdi(MdiLayout.TileVertical) End Sub Private Sub HorizontalToolStripMenuItem_Click Me.LayoutMdi(MdiLayout.TileHorizontal) End Sub Private Sub CascadaToolStripMenuItem_Click Me.LayoutMdi(MdiLayout.Cascade) End Sub
3.- Cdigo para los SubMens del Men Utilitarios.

Private Sub CalculadoraToolStripMenuItem_Click Shell("C:\WINDOWS\system32\calc.exe", AppWinStyle.MaximizedFocus) End Sub Private Sub PaintToolStripMenuItem_Click Shell("C:\WINDOWS\system32\mspaint.exe", AppWinStyle.MaximizedFocus) End Sub Private Sub BlocDeNotasToolStripMenuItem_Click BlocDeNotasToolStripMenuItem.Click Shell("C:\WINDOWS\system32\notepad.exe", AppWinStyle.MaximizedFocus) End Sub Private Sub SalirDelSistemaToolStripMenuItem_Click SalirDelSistemaToolStripMenuItem.Click Dim x As String x = MsgBox("Desea Salir del Sistema", MsgBoxStyle.YesNo + MsgBoxStyle.Information, "Sistema") If x = vbYes Then Me.Close() End If End Sub
4.- Cdigo para la Hora del StatusStrip

Private Sub Timer1_Tick Me.ToolStripStatusLabel3.Text = Format(Now, "hh:mm:ss tt") End Sub Private Sub frmprincipal_Load Me.Timer1.Enabled = True Me.MostrarHoraToolStripMenuItem.Enabled = False Pag. 112 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


Me.MostrarFechaToolStripMenuItem.Enabled = True End Sub
5.- Cdigo para los Mens del ContextMenStrip

Private Sub MostrarFechaToolStripMenuItem_Click MostrarFechaToolStripMenuItem.Click Me.Timer1.Enabled = False Me.ToolStripStatusLabel3.Text = Format(Now, "dddd, MMM d yyyy") Me.MostrarFechaToolStripMenuItem.Enabled = False Me.MostrarHoraToolStripMenuItem.Enabled = True End Sub Private Sub MostrarHoraToolStripMenuItem_Click Me.Timer1.Enabled = True Me.ToolStripStatusLabel3.Text = Format(Now, "hh:mm:ss tt") Me.MostrarHoraToolStripMenuItem.Enabled = False Me.MostrarFechaToolStripMenuItem.Enabled = True End Sub
6.- Cdigo para los Botones del ToolStrip

Private Sub ToolStripButton1_Click Form1.MdiParent = Me Form1.Show() End Sub Private Sub ToolStripButton2_Click Form3.MdiParent = Me Form3.Show() End Sub Private Sub ToolStripButton3_Click Form5.MdiParent = Me Form5.Show() End Sub Private Sub ToolStripButton4_Click Dim x As String x = MsgBox("Desea Salir del Sistema", MsgBoxStyle.YesNo + MsgBoxStyle.Information, "Sistema") If x = vbYes Then Me.Close() End If End Sub Pag. 113 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Pag. 114 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

TEMA 13
Uso de Agentes Explorador Web Reproductor de Windows Media Player

Pag. 115 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Creacin de Controles en Visual Basic.Net 2005


Introduccin
Ya conocemos los controles TextBox y Label. Para utilizarlos, puede dibujarlos en un formulario y determinar y comportamiento a travs de la propiedades y eventos. Cuando cree su propio control Windows, estar creando un objeto similar, con la ventaja de que Ud. Ser quien determine sus propiedades, mtodos y eventos o mejorar los controles ya existentes agregando mas funcionalidades como veremos en la separata, su uso de un control de usuario creado o mejorado ser igual que un control TextBox u otro control ya existente.

Creando el control de Usuario


1.- Crear un Proyecto de tipo Biblioteca de Controles de Windows de nombre Creando controles: como se muestra en la siguiente pantalla.

2.- Cuando crea un proyecto de este tipo por defecto se crea un Control de Usuario de nombre UserControl1 3.- Agregaremos un Label y un TextBox. 4.- El TextBox ingresado en su propiedad Name=TxtNombre 5.- Luego clic derecho sobre el UserControl1 y escoger Ver Cdigo. 6.- Dentro de la Clase UserControl1 escribiremos el siguiente cdigo. Public Class UserControl1

Pag. 116 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


Public Property control() As String Get Return txtnombre.Text End Get Set(ByVal value As String) txtnombre.Text = value End Set End Property End Class 7.- Ahora debemos generar nuestra DLL de tipo control, para eso haga clik derecho sobre el Proyecto Creando Controles y seleccione Generar. 8.- Cuando generamos un Proyecto de tipo Biblioteca de Controles lo que se genera es un archivo DLL reutilizable, para poder ver vaya a la carpeta del Proyecto donde visualizar una carpeta Bin / Release, el archivo se ver como sigue:

Nota: recuerde la ubicacin de su archivo para poder usar ms adelante.

Cmo usar el control de Usuario?


Una vez que hemos creado nuestro Control de Usuario, tenemos que probar en una aplicacin real de Windows, entonces empecemos 1.- Crear un nuevo proyecto de Aplicacin Windows de nombre Probando Control. 2.- Desde el Cuadro de Herramientas Clic derecho seleccione Elegir elementos

3.- Le mostrara la siguiente pantalla: haga clic en el botn Examinar y seleccione su DLL del Control de Usuario (Creando Controles.dll).

Pag. 117 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

4.- Luego haga click en botn aceptar. En el cuadro de herramientas aparecer el control de usuario creado de esta forma.

5.- Al Form1 que tiene en le proyecto agregar el control creado, y al final debe quedar de la siguiente manera.

Creando un Textbox Que Solo Acepte Letras


1.- Agregar un Control de Usuario a su proyecto Creando Controles. 2.- Men proyecto Agregar > Control de Usuario. 3.- Le pondremos de Nombre SoloLetras.

Pag. 118 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

4.- Agregamos un TextBox y en su propiedad Name= TxtLetra

5.- Dentro de la Clase SoloLetras escribiremos el siguiente cdigo. Public Property letra() As String Get Return txtletra.Text End Get Set(ByVal value As String) txtletra.Text = value End Set End Property 6.- Luego en el evento KeyPress del TextBox TxtLetra codificaremos: Private Sub txtletra_KeyPress If Asc(e.KeyChar) >= 48 And Asc(e.KeyChar) <= 57 Then MsgBox("Debe Ingresar Solo Letras", MsgBoxStyle.Information, "Mensaje") e.KeyChar = ChrW(0) End If End Sub

Pag. 119 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


7.- Luego men Generar / Generar Solucin. 8.- Luego en nuestro proyecto Probando Controles agregaremos otro formulario, y agregaremos la DLL que contiene los controles en este caso (Creando Controles.dll)

9.- En el formulario agregaremos un Label y el control SoloLetras. Y deber quedar de la siguiente manera.

10.- Ejecutamos y probaremos ingresando nmeros en el control SoloLetras, nos debe mostrar de la siguiente manera.

Resolver:
Crear un control que solo me acepte Nmeros.

Cdigo ASCII para los Controles


Pequea Tabla De Cdigo Ascii De A a la Z = del 65 al 90 De a a la z = del 97 al 122 = 255, = 233, = 237, = 243, = 250, = 241, = 209 De 0 al 9 = del 48 al 57 ENTER = 13 BACKSPACE = 8 ESC = 27 Barra Espaciadora = 32

Pag. 120 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Consumo de Bibliotecas COM


En este laboratorio usaremos la librera COM [Microsoft Agent Object] para el uso de los Agentes de Microsoft, los mismos que utiliza el Microsoft Office para mostrar ayuda al usuario. Los agentes son pequeos objetos que pueden interactuar con el usuario a base de movimientos, gestos, leyendas e incluso por voz. 1. Disee el siguiente formulario:

BtnMostrar BtnOcultar BtnMovimiento BtnMensaje TxtMensaje ListBox1

2. Agregue la librera COM Microsoft Agent Control 2.0, para ello ir al Men Proyecto / Agregar Referencia as como se muestra en la figura:

3. Luego en la etiqueta COM de la ventana emergente escogeremos Microsoft Agent Control 2.0, as como se muestra en la figura.

Pag. 121 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


4. Luego escribiremos el siguiente cdigo. A nivel Formulario: Public Class Form1 'Declarar los Objetos Dim Agente As New AgentObjects.Agent Dim Mueco As AgentObjects.IAgentCtlCharacterEx En el evento Load del Formulario Private Sub Form1_Load 'Cargar un Character; es decir el mueco que va a aparecer Agente.Connected = True Agente.Characters.Load("Merlin", "merlin.acs") Mueco = Agente.Characters("Merlin") 'Bucle para Cargar Todos los Movimientos Dim Mov As Object For Each Mov In Mueco.AnimationNames Me.ListBox1.Items.Add(Mov) Next End Sub En el evento clic de cada uno de los Botones: Private Sub btnmostrar_Click 'Muestra el Agente Mueco.Show() 'Desplaza de Posicion al Agente Mueco.MoveTo(450, 350) End Sub Private Sub btnocultar_Click 'Oculta al Agente Mueco.Hide() End Sub Private Sub btnmovimiento_Click 'Ejecuta el Movimiento Mueco.Play(Me.ListBox1.SelectedItem ) End Sub Private Sub btnmensaje_Click 'Muestra el Mensaje Mueco.Speak(Me.txtmensaje.Text) End Sub 5. Al final ejecutamos la aplicacin y se debe de mostrar de la siguiente manera:

Pag. 122 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net


Para que el agente Merlin pueda tener voz, es necesario instalar 2 archivos los cuales son: Microsoft SAPI 4.0 Para que Hablen en espaol

Un archivo es para el sistema operativo Windows y el otro es para el idioma. Para que puedan trabajar con estos archivos es necesario que su instructor les provea de la carpeta Ayudantes para Microsoft.

Componentes ActiveX
Visual Basic.Net permite usar componentes ya definidos en nuestros formularios, dichos componentes no son ms que clases que trabajan de una forma concreta que han sido creados para realizar funciones especificas, dichos componentes, cuentan con eventos y propiedades, dado que son usados como objetos. Estos componentes forman parte de una lista de controles que Visual Basic.Net nos ofrece, as mismo podremos agregar ms componentes segn nuestro propio requerimientos.

Pag. 123 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

Explorador Web
Para poder comprender mejor el uso de componentes COM realizaremos un programa que nos permita crear un explorador de pginas web. 1.- Crear un formulario. 2.- Luego como nuestro componente Web no se encuentra en la lista, procederemos a sacarlo de la lista de elementos. Pulsamos clic derecho en el men de Componentes. Elegimos la opcin Elegir Elementos.

3.- Seleccionaremos el componente Explorador del Web de Microsoft y luego en Aceptar. 4.- Luego nos mostrara el componente en nuestra lista de Elementos. 5.- Despus insertamos ese componente usndolo como control a nuestro formulario, tambin insertaremos un control TextBox y Button. BtnIr TxtDi AxWebBrow

Pag. 124 de 125

Desarrollo de Aplicaciones para Windows - Utilizando Visual Basic.Net

6.- Luego en el evento clic del botn BtnIr codificamos lo siguiente. Me.AxWebBrowser1.Navigate(Me.txtdir.Text.Trim)

Reproductor de Msica y Video


Crearemos un reproductor de msica y Video usando componentes COM, dicho programa es muy simple y sencillo el cual te permitir tener un enfoque claro de los componentes ActiveX. 1. Utilizaremos el componente AxWindowsMediaPlayer, si no lo encontramos en nuestra lista lo agregaremos de nuestra lista de Elegir Elementos. 2. Luego insertamos el control Windows Media Player en nuestro formulario junto con 2 botones uno para el audio y el otro para el video. El formulario deber quedar de la siguiente manera.

AxWindowsMediaPlaye

3. Luego en el evento clic de cada botn codificaremos lo siguiente. BtnAudi BtnVideo Private Sub btnaudio_Click Me.AxWindowsMediaPlayer1.URL = "D:\Rocky.mp3" End Sub Private Sub btnvideo_Click Me.AxWindowsMediaPlayer1.URL = "D:\madonna.mpg" End Sub

Pag. 125 de 125

Potrebbero piacerti anche