Practicas Visual Basic NET

52
CUADERNO DE TRABAJO VISUAL BASIC.NET II Cuaderno de Trabajo Visual Basic se encuentra bajo una Licencia Creative Commons Atribución-No Comercial- Licenciamiento Recíproco 3.0 Unported. Septiembre 2011 – IDSystems

Transcript of Practicas Visual Basic NET

Page 1: Practicas Visual Basic NET

CUADERNO DE TRABAJO VISUAL BASIC.NET II

Cuaderno de Trabajo Visual Basic se encuentra bajo una Licencia Creative Commons Atribución-No Comercial-

Licenciamiento Recíproco 3.0 Unported. Septiembre 2011 – IDSystems

Page 2: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 2

Contenido INTRODUCCION ..........................................................................................................................................................4

EJERCICIOS SOBRE EL LENGUAJE ................................................................................................................................5

Actividad de Aprendizaje 6 – Partes de la computadora .......................................................................................6

Actividad de Aprendizaje 7 – Funciones matematicas ...........................................................................................8

Actividad de Aprendizaje 8 – Interes compuesto ................................................................................................ 10

EJERCICIOS SOBRE CONDICIONALES IF y SELECT CASE............................................................................................ 12

Actividad de Aprendizaje 9 – Crucigrama ............................................................................................................ 13

Actividad de Aprendizaje 10 – Contraseña.......................................................................................................... 16

Actividad de Aprendizaje 14 – Cobro de Servicios .............................................................................................. 17

Actividad de Aprendizaje 15 – Areas ................................................................................................................... 24

EJERCICIOS SOBRE CICLOS FOR, DO WHILE, DO UNTIL ........................................................................................... 29

Actividad de Aprendizaje 16 – Sumas ................................................................................................................. 30

Actividad de Aprendizaje 17 – Temperaturas ..................................................................................................... 33

EJERCICIOS SOBRE ARRAYS ...................................................................................................................................... 38

Actividad de Aprendizaje 20 – Promedio de Notas ............................................................................................. 39

EJERCICIOS SOBRE USO DE CONTROLES .................................................................................................................. 42

Actividad de Aprendizaje 24 – Torero ................................................................................................................. 43

Actividad de Aprendizaje 26 – Cubos .................................................................................................................. 46

RETOS ...................................................................................................................................................................... 49

RETO 1 – Diagnostico de RED LAN ....................................................................................................................... 50

RETO 2 – Informacion de Sistema de una PC ...................................................................................................... 52

Page 3: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 3

Page 4: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 4

INTRODUCCION Este es el Cuaderno de Trabajo II de Visual Basic. Es la continuacion del primer cuaderno el cual esta lleno de ejercicios practicos llamados Actividades de Aprendizaje. A diferencia de los ejercicios (los cuales son paso a paso) y las practicas (que no se da ninguna solucion), estos ejercicios contienen una imagen del resultado y el codigo que debe ser tecleado. No asi, las propiedades de los controles y otros elementos graficos. Es responsabilidad del Alumno crear una tabla (o llenar) de los controles (objetos visuales) que lleva cada una de las actividades, para que se adecue según se muestra en la imagen resultante. Estos ejercicios fueron tomados de Visual Basic Programacion para Docentes y agradezco a Mirta Echeverria y Manuel Perez Valdez quienes tienen una excelente pagina de ejercicios. Sin embargo, hubo que clasificarlos en bloques de temas para llevaran un orden de aprendizaje de acuerdo a la mayoria de los cursos de Visual Basic. Por lo que dicha atribucion es nuestra. Recomendamos ampliamente consultar los dos Cuadernos de Trabajo, asi como su Guia de Estudio. Y tomar las notas resumidas en las clases presenciales de su profesor. Estas actividades requieren que el Alumno entienda el proceso de programacion (previamente visto en otras asignaturas) como son: tipos de datos, identificadores, condicionales (simples y multiples), ciclos (mientras, hasta, para), arreglos (unidimensionales y multidimensionales), estructuras. Los actividades es una combinacion de elementos de programacion, elementos del lenguaje VB.NET (comandos, funciones, namespaces, objetos), ejercicios (algunos puntos paso a paso o codigo) y practica (el resto de la elaboracion). De esta forma, el aprendizaje del entorno de Visual Basic.NET se centra mas en el uso y estructura de los programas que en aprender a programar o iniciar con comandos en modo de consola.

Page 5: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 5

EJERCICIOS SOBRE EL LENGUAJE Los siguientes ejercicios, aunque de manera visual y con manejo de controles, se centran mas en sentencias del lenguaje, declaracion de variables y funciones. Usando los controles minimos estandar.

Page 6: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 6

Actividad de Aprendizaje 6 – Partes de la computadora

Abrimos el programa Visual Basic seleccionamos Nuevo proyecto y comenzamos a trabajar. Este ejercicio muestra un truco muy sencillo pero de gran utilidad. A veces tenemos una imagen total que queremos particionar, en este caso la computadora, que nos permite subdividirla en tres partes : monitor, teclado, gabinete. Esto por código sería muy complejo pero usando el control Label en su modo transparente y con el Caption vacío, o sea sin etiqueta nos permite subdividir la imagen y que sus partes respondan a el

evento Click por separado, provocando una respuesta distinta.

En el formulario podemos ver la Label dibujada sobre el monitor, todavía opaca como viene por defecto, luego sobre el gabinete está transparente pero con el Caption , también por defecto en este caso : Label2. Y en el teclado donde está posicionado el cursor en cambio está transparente. De acuerdo a la parte que seleccionemos: en una cuarta Label se nos mostrará el texto correspondiente, en el caso del formulario : "Teclado".

En este ejercicio tenemos una Image, con su Propiedad Stretch a True, lo que nos permite agrandar un icono al tamaño deseado. Y cuatro Labels, tres transparentes para subdividir la Image y una opaca para mostrar la parte seleccionada, y un Botón de Salida.

Page 7: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 7

Control Nombre Propiedades = Valor

label

label

label

label

picturebox

El Código de este ejercicio es el siguiente: Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Label1.Parent = PictureBox1 Label2.Parent = PictureBox1 Label3.Parent = PictureBox1 Label4.Parent = PictureBox1 Label1.BackColor = Color.Transparent Label2.BackColor = Color.Transparent Label3.BackColor = Color.Transparent Label4.BackColor = Color.Transparent End Sub Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click lblParte.Text = "Monitor" End Sub Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.Click lblParte.Text = "CPU" End Sub Private Sub Label3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label3.Click lblParte.Text = "Teclado" End Sub

Page 8: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 8

Private Sub Label4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label4.Click lblParte.Text = "Mouse" End Sub End Class

Actividad de Aprendizaje 7 – Funciones matematicas

En este ejercicio veremos algunas funciones como la búsqueda de números al azar, raíz de números y redondeo de decimales. Usamos botones para ejecutar las funciones, cajas de texto para ingresar valores y labels para dar salida a los resultados.

Page 9: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 9

Control Nombre Propiedades

textbox

textbox

textbox

textbox

textbox

textbox

label

label

label

label

button

button

button

button

El código es:

Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim azar As Integer Randomize() azar = Int(10 * Rnd()) + 1 TextBox1.Text = azar End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim azar As Integer Dim rangomenor As Integer Dim rangomayor As Integer Randomize()

Page 10: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 10

rangomayor = CInt(TextBox2.Text) rangomenor = CInt(TextBox3.Text) azar = Int((rangomayor - rangomenor + 1) * Rnd()) + rangomenor TextBox4.Text = azar End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim numero As Integer Dim raiz As Integer raiz = CInt(TextBox5.Text) numero = CInt(TextBox6.Text) TextBox7.Text = numero ^ (1 / raiz) End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Dim numero As Integer Dim decimales As Integer numero = TextBox8.Text decimales = CInt(TextBox9.Text) TextBox10.Text = Math.Round(numero, decimales) End Sub End Class

Actividad de Aprendizaje 8 – Interes compuesto

En este ejercicio vamos a crear una función que nos permite calcular un interes compuesto, de una suma inicial de acuerdo al porcentaje de interés ingresado y la cantidad de cuotas en que se devuelva el mismo.

Usamos tres labels informativas, y tres cajas de texto para ingresar los valores, un boton para ejecutar la función y una label para que nos devuelva el cálculo hecho.

Page 11: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 11

Control Nombre Propiedades

label

label

label

label

textbox

textbox

textbox

button

El código es: Public Class Form1 Dim capital As Decimal Dim interesmensual As Single Dim cuotas As Long Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click capital = TextBox1.Text interesmensual = TextBox2.Text cuotas = TextBox3.Text Label4.Text = InteresCompuesto(capital, interesmensual, cuotas) End Sub Function InteresCompuesto(ByVal capitas As Integer, ByVal interesmensual As Single, ByVal cuotas As Long) As Integer Dim i As Long Dim total As Integer total = capital For i = 1 To cuotas total = total + (total * interesmensual) Next InteresCompuesto = total - capital End Function End Class

Page 12: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 12

EJERCICIOS SOBRE CONDICIONALES IF y SELECT CASE Los siguientes ejercicios, aunque de manera visual y con manejo de controles, se centran mas en las estrucuturas condicionales.

Page 13: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 13

Actividad de Aprendizaje 9 – Crucigrama

Con este ejercicio queremos sugerir una ejemplo de crucigrama que cada uno podrá adaptar a los

contenidos requeridos. También a partir de aquí podríamos elaborar un Ahorcado.

El crucigrama está armado con cuadros de texto o sea controles Text, encerrados dentro de un control frame, este control tiene la única finalidad de agrupar y contener otros controles, ordenando la interactividad de una manera visual. Otros dos controles Frame agrupan las opciones vertical y horizontal. Conteniendo controles CheckBox que al ser seleccionados hacen la corrección de las letras ingresadas en las cajas de texto. El ingreso de las mismas se hace en tiempo de ejecución a través del teclado.

A la derecha vemos unos controles Picture vacíos que se cargaran con imágenes que muestren por ejemplo una cara sonriente si la palabra es correcta o seria si no lo es, o cualquier otro tipo de imagen .Podemos llamar a esta imagen con la función LoadPicture desde cualquier parte de nuestro disco rígido. Y un botón con el icono de Hijitus indica la Salida y cierre del programa.

Acá tendremos que crear por código una estructura condicional que controle si la entrada de datos es correcta o no.

Control Nombre Propiedades

textbox

textbox

textbox

Page 14: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 14

textbox

textbox

textbox

textbox

textbox

textbox

textbox

textbox

groupbox (frame)

groupbox (frame)

checkbox

checkbox

checkbox

picturebox

picturebox

picturebox

button

El código es el siguiente: Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click End

Page 15: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 15

End Sub Private Sub CheckBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.Click If TextBox6.Text = "L" And TextBox7.Text = "O" And TextBox8.Text = "R" And TextBox4.Text = "O" And TextBox9.Text = "S" Then 'Este codigo debe ir todo en un mismo renlgon y revisa si se escribio una de las palabras correctas 'Cuidado con los nombres de los controles porque seguramente no seran los mismos que en este ejercicio 'Si acerto, pondremos una carita feliz, de lo contrario una carita fea. PictureBox1.Image = Image.FromFile(System.IO.Path.GetFullPath("G:") + "\ico003.ico") MsgBox("ACERTO") Else PictureBox1.Image = Image.FromFile(System.IO.Path.GetFullPath("G:") + "\ico004.ico") MsgBox("FALLO") End If End Sub Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged If TextBox7.Text = "O" And TextBox10.Text = "R" And TextBox11.Text = "O" Then PictureBox1.Image = Image.FromFile(System.IO.Path.GetFullPath("G:") + "\ico003.ico") MsgBox("ACERTO") Else PictureBox1.Image = Image.FromFile(System.IO.Path.GetFullPath("G:") + "\ico004.ico") MsgBox("FALLO") End If End Sub Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox3.CheckedChanged If TextBox1.Text = "R" And TextBox2.Text = "A" And TextBox3.Text = "T" And TextBox4.Text = "O" And TextBox5.Text = "N" Then PictureBox1.Image = Image.FromFile(System.IO.Path.GetFullPath("G:") + "\ico003.ico") MsgBox("ACERTO") Else PictureBox1.Image = Image.FromFile(System.IO.Path.GetFullPath("G:") + "\ico004.ico") MsgBox("FALLO") End If End Sub End Class

Page 16: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 16

Actividad de Aprendizaje 10 – Contraseña Varios visitantes nos han pedido algún ejercicio que use una contraseña para entrar a un programa. Aquí va un ejemplo. Vamos a usar la función InputBox que al abrir una ventana con una caja de texto nos permite ingresar la contraseña.

Si no queremos usar la función podemos reemplazarla por el uso de un pequeño formulario diseñado a nuestro gusto con una caja de texto. El programa se ve así:

Control Nombre Propiedades

button

picturebox

Y el código del evento click del Botón Acceso al Sistema es el siguiente:

Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim nombreusuario As String Dim contraseña As String nombreusuario = InputBox("Introduzca su Nombre") contraseña = InputBox("Introduzca CONTRASEÑA") If UCase(nombreusuario) = "PROGRAMADOR" And LCase(contraseña) = "secreto" Then MsgBox("¡BIENVENIDA PROGRAMADOR! ¿Preparada para trabajar con tu PC?") PictureBox1.Visible = True Me.WindowState = FormWindowState.Maximized ElseIf UCase(nombreusuario) = "ASISTENTE" And LCase(contraseña) = "duende" Then

Page 17: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 17

MsgBox("BIENVENIDO ASISTENTE AL SISTEMA! ¡A trabajar no te duermas!") PictureBox1.Visible = True Else MsgBox("ACCESO DENEGADO") End If End Sub End Class

Además de darnos el acceso con un saludo despliega una imagen en un control Image, en caso de no ser la contraseña o el nombre del usuario el indicado nos niega el acceso.

Actividad de Aprendizaje 14 – Cobro de Servicios

Esta actividad nos permite trabajar con las condicionales, botones de opcion (radio button) que en si son condicionales, realizar operaciones aritmeticas y presentar una interfaz mas agradable añadiendole unos cuantos picturebox asi como imágenes a los botones. Las imágenes fueron descargadas de internet a manera de iconos en formato .PNG. y ajustadas con la propiedad STRETCH.

Page 18: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 18

Aunque el codigo es algo largo porque debe evaluar cada una de las opciones, es facilmente entendible por las condicionales que presenta. Las operaciones son sumas.

Control Nombre Propiedades

groupbox

groupbox

radiobutton

radiobutton

radiobutton

radiobutton

label

label

label

label

label

label

label

label

textbox

textbox

textbox

textbox

textbox

textbox

Page 19: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 19

textbox

picturebox

picturebox

picturebox

picturebox

picturebox

picturebox

picturebox

button

button

Su código es el siguiente: Public Class Form1 'Declaracion de variables Dim Hamburguesa As Single Dim HotDog As Single Dim Sandwich As Single Dim Te As Single Dim Refresco As Single Dim PapasFritas As Single 'Declaracion de variables de cantidad Dim CantidadHamburguesas As Integer Dim CantidadHotDog As Integer Dim CantidadSandwich As Integer Dim CantidadTe As Integer Dim CantidadRefresco As Integer Dim CantidadPapas As Integer Dim TotalVta As Single Dim CostoHamburguesa As Single Dim CostoHotDog As Single Dim CostoSandwich As Single Dim CostoTe As Single Dim CostoRefresco As Single Dim CostoPapas As Single Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Page 20: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 20

MyBase.Load 'Inicializar las variables con los precios de los productos Hamburguesa = 20.5 HotDog = 19.25 Sandwich = 17.5 PapasFritas = 4.5 Refresco = 4 Te = 5 End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'Multiplicando la cantidad por el precio y sumando el total CostoHamburguesa = CantidadHamburguesas * Hamburguesa CostoHotDog = CantidadHotDog * HotDog CostoSandwich = CantidadSandwich * Sandwich CostoTe = CantidadTe * Te CostoRefresco = CantidadRefresco * Refresco CostoPapas = CantidadPapas * PapasFritas TotalVta = CostoHamburguesa + CostoHotDog + CostoSandwich + CostoTe + CostoRefresco + CostoPapas txtTotal.Text = TotalVta End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click End End Sub Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged 'Paquete No.1 de Comida txtTotal.Text = "" If RadioButton1.Checked Then CantidadHamburguesas = 1 CantidadRefresco = 1 CantidadPapas = 1 CantidadHotDog = 0 CantidadSandwich = 0 CantidadTe = 0 'Inicializar valores txtHamburguesa.Text = CantidadHamburguesas txtRefresco.Text = CantidadRefresco txtPapas.Text = CantidadPapas 'Activar las cajas de texto del paquete txtHamburguesa.Enabled = True txtRefresco.Enabled = True txtPapas.Enabled = True 'Desactivar las otras cajas txtHotDog.Enabled = False

Page 21: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 21

txtTe.Enabled = False txtSandwich.Enabled = False 'Limpiar las cajas de texto txtHotDog.Text = "" txtTe.Text = "" txtSandwich.Text = "" End If End Sub Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged 'Paquete No.2 de Comida txtTotal.Text = "" If RadioButton2.Checked Then CantidadHamburguesas = 0 CantidadRefresco = 1 CantidadPapas = 1 CantidadHotDog = 1 CantidadSandwich = 0 CantidadTe = 0 'Inicializar valores txtHotDog.Text = CantidadHotDog txtRefresco.Text = CantidadRefresco txtPapas.Text = CantidadPapas 'Activar las cajas de texto del paquete txtHotDog.Enabled = True txtRefresco.Enabled = True txtPapas.Enabled = True 'Desactivar las otras cajas txtHamburguesa.Enabled = False txtTe.Enabled = False txtSandwich.Enabled = False 'Limpiar las cajas de texto txtHamburguesa.Text = "" txtTe.Text = "" txtSandwich.Text = "" End If End Sub Private Sub RadioButton3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton3.Click 'Paquete No.3 de Comida txtTotal.Text = "" If RadioButton3.Checked Then CantidadHamburguesas = 0 CantidadRefresco = 1 CantidadPapas = 1 CantidadHotDog = 0

Page 22: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 22

CantidadSandwich = 1 CantidadTe = 0 'Inicializar valores txtSandwich.Text = CantidadSandwich txtRefresco.Text = CantidadRefresco txtPapas.Text = CantidadPapas 'Activar las cajas de texto del paquete txtSandwich.Enabled = True txtRefresco.Enabled = True txtPapas.Enabled = True 'Desactivar las otras cajas txtHotDog.Enabled = False txtTe.Enabled = False txtHamburguesa.Enabled = False 'Limpiar las cajas de texto txtHamburguesa.Text = "" txtTe.Text = "" txtHotDog.Text = "" End If End Sub Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton4.CheckedChanged 'Opcion Otro Pedido txtTotal.Text = "" 'Inicializar variables= CantidadHamburguesas = 0 CantidadHotDog = 0 CantidadPapas = 0 CantidadRefresco = 0 CantidadTe = 0 CantidadSandwich = 0 'Habilitar todas las entradas txtHamburguesa.Enabled = True txtHotDog.Enabled = True txtSandwich.Enabled = True txtTe.Enabled = True txtRefresco.Enabled = True txtPapas.Enabled = True txtHamburguesa.Text = CantidadHamburguesas txtHotDog.Text = CantidadHotDog txtSandwich.Text = CantidadSandwich txtTe.Text = CantidadTe txtRefresco.Text = CantidadRefresco txtPapas.Text = CantidadPapas End Sub Private Sub txtHamburguesa_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtHamburguesa.TextChanged txtTotal.Text = ""

Page 23: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 23

CantidadHamburguesas = Val(txtHamburguesa.Text) End Sub Private Sub txtHotDog_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtHotDog.TextChanged txtTotal.Text = "" CantidadHotDog = Val(txtHotDog.Text) End Sub Private Sub txtSandwich_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSandwich.TextChanged txtTotal.Text = "" CantidadSandwich = Val(txtSandwich.Text) End Sub Private Sub txtTe_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTe.TextChanged txtTotal.Text = "" CantidadTe = Val(txtTe.Text) End Sub Private Sub txtRefresco_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtRefresco.TextChanged txtTotal.Text = "" CantidadRefresco = Val(txtRefresco.Text) End Sub Private Sub txtPapas_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtPapas.TextChanged txtTotal.Text = "" CantidadPapas = Val(txtPapas.Text) End Sub End Class

Page 24: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 24

Actividad de Aprendizaje 15 – Areas

Este ejercicio calcula el área de distintas figuras geométricas. usamos el mismo escenario que para la aplicación Ecuaciones de Segundo Grado. El reto de este ejercicio es practicas los botones de opciones (el equivalente a las estructuras condicionales) para calcular el area. Y trabajar con el codigo GDI+ de VB.NET el cual nos permite dibujar con instrucciones del propio lenguaje. Las imágenes que se ven en pantalla, no son creadas con un programa externo, sino con el propio Visual Basic.Net y su librería de graficos. En el codigo vera como se puede lograr esto. *NOTA: El codigo del programa no esta completo, para que usted lo desarrolle completamente tomando como base la primer figura propuesta. Tome atencion que debe dibujar las figuras, la formula, asi como presentar las cajas de texto correctas para realizar el calculo y presentar este en la caja de Resultado.

Control Nombre Propiedades

groupbox

groupbox

Page 25: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 25

groupbox

groupbox

groupbox

rectangleshape

radiobutton

radiobutton

radiobutton

radiobutton

radiobutton

radiobutton

radiobutton

picturebox

picturebox

label

label

label

label

textbox

textbox

textbox

textbox

button

Page 26: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 26

button

Su código es: Public Class Form1 Dim h As Integer Dim b As Integer Dim b1 As Integer Sub Limpiar() Dim g As Graphics = imgFigura.CreateGraphics() g.Clear(imgFigura.BackColor) g.Dispose() Dim g1 As Graphics = imgFormula.CreateGraphics g1.Clear(imgFormula.BackColor) g1.Dispose() End Sub Sub OcultarB1() lblDato3.Visible = False txtDato3.Visible = False End Sub Sub MostrarB1() lblDato3.Visible = True txtDato3.Visible = True End Sub Sub Triangulo() Call Limpiar() Dim bm As Bitmap Dim gr As Graphics Dim lapiz As Pen Dim x1, y1 As Integer ' Create string to draw. Dim drawString As [String] = "Sample Text" ' Create font and brush. Dim drawFont As New Font("Arial", 12) Dim drawBrush As New SolidBrush(Color.Black) Dim draw2Font As New Font("Arial", 14) Dim bm2 As Bitmap Dim fr As Graphics x1 = Int(imgFigura.Height) y1 = Int(imgFigura.Width) Dim myArrayPoints() As Point = New Point() {New Point(20, 92), New Point(137, 92), _

Page 27: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 27

New Point(106, 20)} bm = New Bitmap(imgFigura.Image) gr = Graphics.FromImage(bm) lapiz = New Pen(Color.Black) 'o el color que sea (o pen(color.black, N) n es el ancho) gr.DrawPolygon(New Pen(Color.Brown, 2), myArrayPoints) gr.DrawLine(lapiz, 106, 20, 106, 92) imgFigura.Image = bm ' Draw string to screen. gr.DrawString("h", drawFont, drawBrush, 90, 60) gr.DrawString("b", drawFont, drawBrush, 75, 100) 'Dibujar la formula bm2 = New Bitmap(imgFormula.Image) fr = Graphics.FromImage(bm2) imgFormula.Image = bm2 fr.DrawString("Area=( b x h ) / 2", draw2Font, drawBrush, 5, 30) 'Ahora cambiar las etiquetas segun corresponde lblDato1.Text = "b=" lblDato2.Text = "h=" End Sub Private Sub cmdSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSalir.Click End End Sub Private Sub optTriangulo_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles optTriangulo.CheckedChanged If optTriangulo.Checked Then 'frmFigura = "Triangulo" Call OcultarB1() 'Call MostrarH() Call Triangulo() frmDatos.Visible = True frmResultado.Visible = True End If End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Inicializar las variables H = 1 B = 2 b1 = 1 'Inicializar las cajas de texto txtDato1.Text = B txtDato2.Text = H txtDato3.Text = b1 End Sub

Page 28: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 28

Private Sub optParalelogramo_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles optParalelogramo.CheckedChanged Call Triangulo() End Sub End Class

Page 29: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 29

EJERCICIOS SOBRE CICLOS FOR, DO WHILE, DO UNTIL Los siguientes ejercicios, aunque de manera visual y con manejo de controles, se centran mas en las estrucuturas repetitivas o ciclos.

Page 30: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 30

Actividad de Aprendizaje 16 – Sumas

Este ejercicio elige en forma Aleatoria dos números y los despliega en dos Labels para que el alumno luego, introduzca el valor correcto de la suma de ambos en un TextBox . Si está bien le aparecerá la carita sonriente y sino la de disgusto. Luego volverán a aparecer otros dos números para que siga sumando.

El botón Aplicar permite hacer la corrección mediante un Condicional. Algunos de estos temas son comunes a otros ejercicios. Por lo tanto nos centraremos en las funciones nuevas.

La función Rnd nos permite cargar en una variable un número aleatorio que en este caso definimos como entero Int (de Integer) y de 0 a 10.

Page 31: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 31

Num1 = int( Rnd * 10)

Repetimos el procedimiento para Num2, el segundo sumando de nuestra cuenta. Para que realmente sea aleatorio debemos incorporar la sentencia Randomize en el Procedimiento Load del Formulario.

Otra función que utilizamos es Val que transforma una cadena de caracteres, en este caso el contenido de un Text en un valor numérico.

Resultado = Val ( Text1.Text)

Y luego con un condicional y el operador de suma + controlamos si el resultado es correcto:

If resultado = Int(num1) + Int(num2) then...

En el caso de resolver bien la cuenta pasa a cargar otros dos números , iniciando una nueva cuenta. Pero necesitamos una espera en la aplicación. Esto lo hacemos por código con un bucle que asociado al reloj del sistema crea una pausa en la aplicación. Para esto creamos un Procedimiento llamado Pausa. Posicionados en la ventana de código , en el area de GENERAL tecleamos el codigo descrito mas abajo.

Ahora veremos en nuestra ventana de código un nuevo Procedimiento llamado Pausa. Incluido dentro de los procedimientos del objeto General. Luego lo llamaremos desde otra parte del programa con la sentencia Call.

Control Nombre Propiedades

label

label

label

label

textbox

button

button

button

lineshape

picturebox

Page 32: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 32

Para mayor claridad vamos al código:

Public Class Form1 Dim num1, num2, resultado As Integer Private Sub pausa(ByVal segundos As Integer) ' este el procedimiento creado por nosotros para crear una pausa ' usando un ciclo (sin el control Timer) Dim esperaTmp As Long = My.Computer.Clock.TickCount + (segundos * 1000) While esperaTmp > My.Computer.Clock.TickCount System.Windows.Forms.Application.DoEvents() End While End Sub Private Sub cmdSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSalir.Click End End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Randomize() num1 = Int(Rnd() * 10) 'al cargarse el programa ya aparece una cuenta num2 = Int(Rnd() * 10) txtResultado.Text = "" lblDato1.Text = num1 'se vuelcan las variables en las Labels lblDato2.Text = num2 cmdCalcular.Enabled = False 'el botón aplicar está desactivado End Sub Private Sub txtResultado_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtResultado.TextChanged cmdCalcular.Enabled = True End Sub Private Sub cmdOtraSuma_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdOtraSuma.Click num1 = Int(Rnd() * 10) 'elige un número aleatorio num2 = Int(Rnd() * 10) 'elige un número aleatorio txtResultado.Text = "" lblDato1.Text = num1 lblDato2.Text = num2 txtResultado.Focus() ' ubica el foco del cursor en el control Text1 cmdCalcular.Enabled = False PictureBox1.Image = Nothing 'vacía el contenido de la imagen End Sub Private Sub cmdCalcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCalcular.Click cmdCalcular.Enabled = False

Page 33: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 33

resultado = Val(txtResultado.Text) If resultado = Int(num1) + Int(num2) Then 'MsgBox("Bien!") PictureBox1.Image = Image.FromFile(System.IO.Path.GetFullPath("G:") + "\sumas_ico002.ico") Else 'MsgBox("Mal!") PictureBox1.Image = Image.FromFile(System.IO.Path.GetFullPath("G:") + "\sumas_ico001.ico") End If lblMensaje.Visible = True lblMensaje.Text = "Pensando en otra suma para ti..." ' llama al procedimiento que creamos como Pausa ' pasandole como parametro la cantidad de segundos que queremos. Call pausa(3) lblMensaje.Visible = False cmdOtraSuma.PerformClick() End Sub End Class

Actividad de Aprendizaje 17 – Temperaturas

Page 34: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 34

En este ejercicio, simplemente entramos en tiempo de ejecución una temperatura para cada día de la semana y luego haciendo click en los botones: Alta, Media y Baja , devuelve los valores en otras cajas de texto. Debemos usar un arreglo para almacenar los valores introducidos en cada caja de texto, y con un ciclo (For..Next), recorrer dicho arreglo para saber cual es el valor mas alto, mas bajo y el promedio en una semana dada.

Control Nombre Propiedades

textbox

textbox

textbox

textbox

textbox

textbox

textbox

textbox

textbox

textbox

label

label

label

label

label

label

label

Page 35: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 35

label

label

label

button

button

button

button

button

El código es el siguiente: Public Class Form1 'Declaramos las variables que vamos a calcular. Dim alta As Single Dim dia As Integer Dim baja As Single Dim media As Single 'Declaramos un arreglo para los dias de la semana Dim txtBox(7) As TextBox Sub SetControlArray() 'Funcion que nos pasara los valores de las cajas de texto de dia de la semana 'al array que hemos creado. txtBox(1) = txtDomingo txtBox(2) = txtLunes txtBox(3) = txtMartes txtBox(4) = txtMiercoles txtBox(5) = txtJueves txtBox(6) = txtViernes txtBox(7) = txtSabado End Sub Private Sub cmdSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSalir.Click End End Sub Private Sub cmdAlta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAlta.Click ' Calcular cual es la temperatura mas alta de la semana de acuerdo a los valores ' introducidos por el usuario. ' Primero llamamos la funcion para poner los valores en el array Call SetControlArray()

Page 36: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 36

' Ahora realizaremos un ciclo para recorrer todos los dias de la semana ' y saber cual es el dia en que el valor es el mas alto. alta = txtBox(1).Text For Me.dia = 1 To 7 If txtBox(dia).Text > alta Then alta = txtBox(dia).Text End If Next dia txtAlta.Text = alta End Sub Private Sub cmdBaja_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdBaja.Click ' Calcular cual es la temperatura mas baja de la semana Call SetControlArray() baja = txtBox(1).Text For Me.dia = 1 To 7 If txtBox(dia).Text < baja Then baja = txtBox(dia).Text End If Next dia txtBaja.Text = baja End Sub Private Sub cmdMedia_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdMedia.Click 'Calcular la temperatura promedio del dia de la semana ' Declarar variables locales Dim total As Long Dim promedio As Long 'Llamar array de inicializacion Call SetControlArray() total = 0 For Me.dia = 1 To 7 total = total + txtBox(dia).Text Next dia promedio = total / 7 txtMedia.Text = Format(promedio, "##.##") 'formato con dos decimales End Sub Private Sub cmdBorrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdBorrar.Click 'Borrar todos los valores de temperaturas de la semana 'Aqui no pondremos el array sino accesamos de manera directa a los controles txtDomingo.Text = "" txtLunes.Text = "" txtMartes.Text = "" txtMiercoles.Text = "" txtJueves.Text = "" txtViernes.Text = "" txtSabado.Text = "" End Sub End Class

Page 37: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 37

Usando estructuras de repetición For Next, calculamos los valores de alta y baja, luego para la media sacamos por división el promedio.

Page 38: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 38

EJERCICIOS SOBRE ARRAYS Los siguientes ejercicios, aunque de manera visual y con manejo de controles, se centran mas en los Arreglos y algunos controles que los utilizan.

Page 39: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 39

Actividad de Aprendizaje 20 – Promedio de Notas

Este ejercicio nos permite ingresar una cantidad de valores, por ejemplo las notas de un alumno, y luego obtener su promedio. En el formulario usamos cuatro botones, dos cajas de texto, y un ListBox, un frame y tres Labels. Necesitamos usar un arreglo para almacenar los valores de las calificaciones que vamos introduciendo, ya que la caja de lista, tambien se maneja con un arreglo de valores. Veremos ademas, el uso del control Listbox para agregar elementos y para eliminarlos. Tambien usaremos un ciclo para recorrer todos los valores del Array y calcular el promedio.

Control Nombre Propiedades

groupbox

label

label

textbox

textbox

Page 40: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 40

button

button

button

button

listbox

El código es el siguiente: Public Class Form1 Dim Nota() As Single Dim N As Integer 'Número total de notas. Private Sub cmdSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSalir.Click End End Sub Private Sub txtCalificacion_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtCalificacion.LostFocus If IsNumeric(txtCalificacion.Text) Then 'Chequea si el valor es numérico. If txtCalificacion.Text <= 0 Then 'Chequea si es mayor que cero. MsgBox("Valor incorrecto,debe ser mayor que cero", vbCritical) txtCalificacion.Focus() 'Situa el foco en el TexBox Text1. End If Else 'Si no es numérico el dato. MsgBox("El valor debe ser mayor que cero", vbCritical) txtCalificacion.Focus() 'Situa el foco en el TexBox Text1. End If End Sub Private Sub cmdCaptura_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCaptura.Click If txtCalificacion.Text = "" Then 'Si no se han introducido nota. MsgBox("No se ha introducido una nota") txtCalificacion.Focus() Exit Sub End If N = N + 1 'Inicializa el conteo de las notas entradas. ReDim Preserve Nota(0 To N) 'Redimesiona el arreglo. Nota(N) = txtCalificacion.Text 'Asigna el valor al arreglo. 'Añade la nota a la lista. ListBox1.Items.Add(Nota(N)) 'cmdEntrarNota.Enabled = False End Sub

Page 41: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 41

Private Sub cmdBorrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdBorrar.Click Dim i As Integer, NotaInd As Integer 'NotaInd = ListBox1.ListIndex + 1 'Asigna el orden del elemento de la lista a una variable. NotaInd = ListBox1.SelectedIndex + 1 'If ListBox1.ListIndex = -1 Then 'Si no esta checheada la lista. If ListBox1.SelectedIndex = -1 Then MsgBox("Haga click en la lista para borrar la nota") Exit Sub Else 'ListBox1.RemoveItem(List1.ListIndex) 'Borra de la Lista la Nota ListBox1.Items.RemoveAt(ListBox1.SelectedIndex) txtCalificacion.Text = "" 'Limpia el texto. 'Eliminar la nota de indice (List1.ListIndex+1) y correr las notas For i = NotaInd To N - 1 Nota(i) = Nota(i + 1) Next i N = N - 1 'actualizando número de notas por ser borrada una. If N > 1 Then ReDim Preserve Nota(0 To N) 'Reajustando la dimensión del arreglo notas txtPromedio.Text = "" End If End Sub Private Sub cmdCalcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCalcular.Click 'Calcular el proemdio Dim Suma As Single Dim Promedio As Single Dim J As Integer If N = 0 Then 'Si el número de notas es cero. MsgBox("No existen valores para promediar") Exit Sub End If Suma = 0 For J = 1 To N 'Suma todas las notas Suma = Suma + Nota(J) Next J Promedio = Suma / N txtPromedio.Text = Promedio End Sub End Class

Page 42: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 42

EJERCICIOS SOBRE USO DE CONTROLES Los siguientes ejercicios, se centran en el uso de los controles estandar de Visual Basic, sus propiedades y eventos para conocer como se comportan.

Page 43: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 43

Actividad de Aprendizaje 24 – Torero

Este ejercicio muestra una sucesión de Imágenes al estilo un show de diapositivas .Tenemos 2 modos de hacerlo. Uino, las imágenes las cargamos en controles Image a la izquierda del formulario invisibles, para luego convocarlas por código y desplegarlas en la Image central, ésta si con su propiedad visible = True.

El segundo metodo, es tener las imágenes en la carpeta donde se ejecuta el programa, y de ahí mediante codigo irlas mostrando en un solo control picturebox. La ventaja es que tendremos menos controles en nuestro formulario, pero debemos tener las imágenes en la misma carpeta del programa. En el primer metodo, las imágenes quedan DENTRO del programa.

Page 44: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 44

La sucesión de imágenes la realiza un control Timer asociado a un contador , cada imagen se relaciona con un texto que desplegamos en una Label colocada debajo de la imagen central. Al llegar el contador a 12 se detiene la sucesión.

El boton Reiniciar nos posibilita volver a comenzar sin salir de la aplicación, para esto inicializa la variable A = 0 y pone el Timer nuevamente en funcionamiento.

Control Nombre Propiedades

picturebox

picturebox

label

button

button

El código de los principales procedimientos es el siguiente:

Public Class Form1 Dim a As Integer Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

Page 45: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 45

a = a + 1 If a = 2 Then PictureBox2.Image = Image.FromFile("Torerito_JPG002.jpg") Label1.Text = " Y los tirantes después..." ElseIf a = 3 Then PictureBox2.Image = Image.FromFile("Torerito_JPG003.jpg") Label1.Text = " enseguida la corbata..." ElseIf a = 4 Then PictureBox2.Image = Image.FromFile("Torerito_JPG004.jpg") Label1.Text = " enseguida la corbata..." ElseIf a = 5 Then PictureBox2.Image = Image.FromFile("Torerito_JPG005.jpg") Label1.Text = "Y una faja de chipé..." ElseIf a = 6 Then PictureBox2.Image = Image.FromFile("Torerito_JPG006.jpg") Label1.Text = "El chaleco hay que ensancharlo..." ElseIf a = 7 Then PictureBox2.Image = Image.FromFile("Torerito_JPG007.jpg") Label1.Text = "la chaquetilla está bien..." ElseIf a = 8 Then PictureBox2.Image = Image.FromFile("Torerito_JPG008.jpg") Label1.Text = "Una cinta desatada..." ElseIf a = 9 Then Label1.Text = "Un beso ardiente... dos... tres..." PictureBox2.Image = Image.FromFile("Torerito_JPG009.jpg") ElseIf a = 10 Then PictureBox2.Image = Image.FromFile("Torerito_JPG010.jpg") Label1.Text = " Mezcla de llanto y de juego y un rezo de ella por él..." ElseIf a = 11 Then PictureBox2.Image = Image.FromFile("Torerito_JPG011.jpg") Label1.Text = "Dios mío que vuelva zano! ¡Si él muere, muero también!" ElseIf a = 12 Then 'Label4.Visible = True Timer1.Enabled = False End If End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Timer1.Enabled = True a = 0 Label1.Text = "Lo primero es la coleta..." End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click End End Sub End Class

Page 46: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 46

*NOTA: El timer por defecto esta desactivado, hay que activarlo. El intervalo del timer debe ser puesto

a 3000 (3 segundos) entre cada imagen.

Actividad de Aprendizaje 26 – Cubos

Este ejercicio es para ver los eventos que se pueden manejar con el mouse, moviendo una imagen por el formulario. Es parecido al Drag&Drop pero no es lo mismo ya que usa los eventos de Mouse. Este tipo de ejercicios es muy útil para los docentes que trabajan con los más pequeños.

Usamos tres controles Picture cargando en cada uno de ellos un icono que les guste.

Control Nombre Propiedades

picturebox

picturebox

picturebox

el siguiente código:

Page 47: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 47

Public Class Form1 Private btnDown As Boolean Private offsetX As Integer Private offsetY As Integer Private btn2Down As Boolean Private x2, y2 As Integer Private btn3Down As Boolean Private x3, y3 As Integer Dim origen As Integer Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown ' el boton izquierdo esta pulsado If (e.Button = MouseButtons.Left) Then btnDown = True offsetX = e.X offsetY = e.Y End If End Sub Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove If btnDown = True Then '// mover el pictureBox con el raton PictureBox1.Left += e.X - offsetX PictureBox1.Top += e.Y - offsetY End If End Sub Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp '// el boton izquierdo se libera If e.Button = MouseButtons.Left Then btnDown = False End If End Sub Private Sub PictureBox2_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles PictureBox2.DragDrop PictureBox2.Left += e.X - x2 PictureBox2.Top += e.Y - y2 End Sub Private Sub PictureBox2_DragOver(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles PictureBox2.DragOver PictureBox2.Left += e.X - x2 PictureBox2.Top += e.Y - y2 End Sub Private Sub PictureBox2_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox2.MouseDown PictureBox2.DoDragDrop(PictureBox2, DragDropEffects.Move)

Page 48: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 48

x2 = PictureBox2.Location.X y2 = PictureBox2.Location.Y End Sub End Class

Page 49: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 49

RETOS Las siguientes actividades son retos para los alumnos y que desarrollen sus habilidades como programadores, aplicando lo que han aprendido en clase sobre los comandos de VB.NET ,asi como la logica de la programacion. Algunos de los retos, contendran un poco de codigo a manera de guia sobre lo que se desea realizar, otros mostraran solo alguna imagen final de cómo debe quedar la aplicación final.

Page 50: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 50

RETO 1 – Diagnostico de RED LAN

El reto de esta aplicación es determinar:

1) Si la computadora donde se ejecuta el programa esta conectado a una red 2) Si la computadora donde se ejecuta el programa esta conectado a Internet 3) Checar todas las computadoras de una RED LAN.

Como ejemplo, para el caso numero 1, tendremos: If My.Computer.Network.IsAvailable = True Then MsgBox("Estas conectado a una red") Else MsgBox("No estas conectado a una red") End If

Page 51: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 51

Y para el caso numero 2: If My.Computer.Network.Ping("www.google.com") = True Then MsgBox("Tienes conexion a Internet") Else MsgBox("No puedes conectarte a Internet" + Chr(13) + "Revisa tu modem") End If

Hay otras instrucciones de VB.NET las cuales obtienen el nombre de la PC por su ip o viceversa, asi como el manejo de errores si hay problemas de comunicación. El alumno debera resolver todos los inconvenientes y crear una interfaz amigable para que que el usuario pueda monitorear cuales computadoras estan conectadas y cuales no. Posibles opciones:

1) De 1 por 1 2) Con un boton que chequen todas las computadoras de la red 3) Con un timer que se ejecute cada cierto tiempo 4) Con cuadros que cambien de color 5) Con el nombre de la PC 6) Con la ip de la PC 7) Con iconos que cambien.

En fin, las posibilidades son muchas. NOTA TIP : En Internet hay una aplicación para conocer todas las ips de una red Lan de manera automatica. Hay que buscar en google para ver el codigo fuente de dicha aplicación, modificarlo y adaptarlo a sus necesidades.

Page 52: Practicas Visual Basic NET

Cuaderno de Trabajo Visual Basic .NET II Página 52

RETO 2 – Informacion de Sistema de una PC Este reto, pretende crear una aplicación usando ciertas instrucciones de VB.NET para obtener informacion de una computadora como su version de sistema operativo, memoria, resolucion de pantalla, etc. Sin hacer uso de ningun control ActiveX. La interfaz y la cantidad de informacion presentada correra a cargo del alumno (incluso puede poner algunas imágenes o iconos de acompañamiento ). Ejemplo de esta informacion: Inicializar varias variables para que sea mas descriptivo Dim nombreEquipo, MemoriaFisicaDisp, MemoriaVirtualDisp As String Dim sistemaoperativo, sistemaoperativoversion, memoriafisica, memoriavirtual As String Dim mouseruedita As Boolean Dim horaloca, directoriodocs As String nombreEquipo = My.Computer.Name MemoriaFisicaDisp = My.Computer.Info.AvailablePhysicalMemory MemoriaVirtualDisp = My.Computer.Info.AvailableVirtualMemory SistemaOperativo = My.Computer.Info.OSFullName SistemaOperativoVersion = My.Computer.Info.OSVersion MemoriaFisica = My.Computer.Info.TotalPhysicalMemory MemoriaVirtual = My.Computer.Info.TotalVirtualMemory MouseRuedita = My.Computer.Mouse.WheelExists HoraLoca = My.Computer.Clock.LocalTime DirectorioDocs = My.Computer.FileSystem.SpecialDirectories.MyDocuments TextBox1.Text = directoriodocs