| Visual
Basic .NET
visita nuestros manuales
de VB.net de los niveles : basico
- medio
- avanzado
Índice Temático
Básico
» Intermedio
» Avanzado
¿Qué es
Visual Basic .NET
Es un lenguaje orientado a objetos y eventos
que soporta encapsulación,
herencia y polimorfismo.
Es una mejora a Visual
Basic formando parte de Visual Studio
y compartiendo el entorno de desarrollo
con Microsoft Visual C++ .NET, Microsoft
Visual C# .NET, etc.
Entorno de
Desarrollo
El Entorno de Desarrollo recibe el nombre
de Entorno de Desarrollo de Microsoft Visual
Studio .NET. Este entorno es personalizable
y contiene todas las herramientas. necesarias
para construir programas para Microsoft
Windows.
El Entorno de Desarrollo contiene múltiples
ventanas y múltiples funcionalidades y es
por consecuencia llamado un entorno de desarrollo
integrado (integrated development environment
IDE).
La ventana central es la ventana de diseño
(Designer Window), la cual contiene
el formulario a desarrollar.
La caja de herramientas (ToolBox)
se localiza de lado izquierdo. En el extremo
derecho tenemos la ventana de explorador
de soluciones (Solution Explorer).
La ventana de propiedades (Properties
window) contiene tres partes:
- La parte superior contiene un combo
box que muestra el nombre y la clase del
objeto seleccionado.
- La parte media contiene la lista de
propiedades del objeto seleccionado, de
lado derecho contiene un conjunto de cajas
para ver y editar el valor de la propiedad
seleccionada.
- La parte inferior es un cuadro descriptivo
que proporciona una breve descripción
de la propiedad seleccionada.
Es necesario tener instalado el Visual
Studio .NET, al ejecutarlo se presenta una
página de inicio, en caso de no presentarse
entonces de clic en Help/Show Start Page.
En esta página será posible establecer su
perfil, por ejemplo identificarse como Desarrollador
Visual Studio o más especifico como Desarrollador
Visual Basic con lo cual Visual Studio configura
de inmediato el entorno de desarrollo para
programar en Visual Basic.
Para iniciar un nuevo proyecto, de clic
en la opción Projects y clic en el
botón [New Project], esta acción
abre una ventana donde se indicará el archivo
a abrir, los proyectos Visual Basic .NET
tiene la extensión .vbproj. Una vez
que abre el projecto si la página de inicio
estaba visible continuará así y en el Explorador
de Soluciones (Solution Explorer) se cargan
los archivos correspondientes al proyecto.
En Visual Basic .NET existen dos archivos:
- Un archivo de projecto
.vbproj,
el cual contiene información específica
para una determinada tarea de programación.
- Un archivo de solución
.sln,
el cual contiene información relacionada
con uno o más proyectos. Este tipo de
archivo puede administrar varios projectos
relacionados entre sí y son similares
a los archivos de grupos de proyecto (.vbg)
en Visual
Basic 6
Si la solución tiene un único proyecto,
abrir el archivo de proyecto .vbproj
o el archivo de solución .sln
tiene el mismo resultado, pero si la solución
es multiproyecto entonces deberá abrir el
archivo de solución.
Best
Practices: Procure siempre abrir el
archivo de solución .sln.
Los formularios en Visual Basic .NET tienen
la extensión .vb. Se mostraran
a manera de pestañas la página de inicio,
la vista de diseño y el código del formulario.
Para evitar el acoplamiento de ventanas,
mientras arrastre la ventana pulse la tecla
[Ctrl], si desea integrar la ventana
como pestaña entonces arrastre la ventana
sobre otras pestañas y libere.
El control Image desaparece en
Visual Studio.
Ya no tendrá que utilizar el tabulador
para identar su código.
.NET Framework
Visual Studio .NET tiene una nueva herramienta
que comparte con Visual Basic, Visual C++,
Visual C#, etc.
llamada .NET Framework que
además es una interfaz subyacente que forma
parte del propio sistema operativo Windows.
La estrucutra de .NET Framework
es por Clases mismas que puede incorporar
a sus proyectos a través de la instrucción
Imports, por ejemplo una de
sus Clases es System.Math la
cual soporta los siguientes métodos
| Método |
Descripción |
Abs(n) |
Calcula el valor absoluto de n |
Atan(n) |
Calcula el arcotangente de n en radianes |
Cos(n) |
Calcula el coseno del ángulo n expresado
en radianes |
Exp(n) |
Calcula el constante de e elevada
a n |
Sign(n) |
Regresa -1 si n es menor
que cero, 0 si n es cero y +1
si n es mayor a cero |
Sin(n) |
Calcula el seno del ángulo n expresado
en radianes |
Sqr(n) |
Calcula la raíz cuadrada de n. |
Tan(n) |
Calcula la tangente del ángulo n expresado
en radianes |
La declaración de Imports
debe ser a nivel de formulario:
Imports System.Math
Public Class Form1
.
.
.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)-
Handles MyBase.Load
txtOutput.Text += Sqrt(9) & vbNewLine
.
.
.
.NET
La biblioteca de clases .NET
es una biblioteca de clases incluida en
el Microsoft .NET Framework y está diseñada
para ser la base sobre las cuales las aplicaciones
.NET son construidas.
namespaces
La biblioteca .NET contiene un
número considerable de clases con código
reutilizable, para ayudar a controlar esta
complejidad .NET utiliza namespaces,
colecciones de clases relacionadas.
Nuevo
Proyecto
De clic en el botón [New Project]
o File/New/Project, como tipo de proyecto
seleccione Visual Basic Project,
como plantilla seleccione Windows Application,
por último indique la ubicación donde desea
almacenar su proyecto. Al dar clic Visual
Studio configura el entorno de desarrollo
y crea un directorio con el mismo nombre
que especifico para la aplicación.
Aplicación
Windows Ejecutable
Las aplicaciones Windows creadas con Visual
Basic .NET tienen la extensión .exe
mismas que podrán ser ejecutadas en cualquier
equipo que tenga instalado Microsoft Windows.
Visual Basic .NET instala de de manera automática
los archivos de soporte, incluyendo las
bibliotecas de vínculos dinámicos y archivos
de .NET framework.
Visual Studio puede crear dos tipos de
archivos ejecutables:
Debug - Compilación de
depuración, se utiliza cuando se prueba
y depura un programa (Default).
Release - Versión de edición,
se utiliza cuando se termina el programa
siendo esta una versión optimizada de
menor tamaño
Para crear un archivo ejecutable, de clic
en Build/Configuration Manager para decidir
sobre el tipo de archivo ejecutable, además
de otras opciones como la plataforma para
la cual desea crear la aplicación.
De clic en Build/Build Solution.
Lo que Visual Basic hace es crear una
directorio binaria dentro del directorio
que contiene el proyecto y
compilará el código fuente, dando como resultado
un archivo .exe con el nombre de su aplicación.
Programación
Orientada a Eventos
Visual Basic .NET soporta la Programación
Orientada a Eventos en la cual las aplicaciones
reconocen y responden a eventos.
Evento
Un Evento es una acción o acontecimiento
reconocido por algunos objetos para los
cuales es necesario
escribir el código para responder a dicho
evento. Los eventos pueden ocurrir como
resultado de una acción del usuario (onClick),
por invocación a través de código o disparados
por el sistema (Timer Tick Event).
Manejador
de Eventos
Un Manejador de Eventos contiene
código que responde a eventos particulares.
Un desarrollador diseña cuidadosamente sus
aplicaciones determinando los controles
disponibles para el usuario y los eventos
apropiados asociados a estos controles,
entonces, el desarrollador escribe el código
para integrar los eventos consistentes con
el diseño de la aplicación.
Procedimientos
Un procedimiento es un conjunto
de sentencias que realizan una acción lógica.
Existen tres tipos de procedimientos en
Visual Basic .NET:
- Event procedures/Event handler,
procedimiento que contiene código que
es ejecutado en respuesta a un evento.
Cuando el evento es disparado el código
dentro del manejador de eventos es ejecutado.
Visual Basic .NET para los manejadores
de eventos utiliza una convención estándar
la cual combina el nombre del objeto
seguido de un guión bajo y el nombre
del evento.
Private|Public Sub objeto_Evento(parámetros) handles Objeto.Evento
sentencias
End Sub
Cada manejador de eventos provee dos
parámetros, el primer parámetro llamado
sender provee una referencia
al objeto que dispara el evento, el
segundo parámetro es un objeto cuyo
tipo de dato depende del evento que
es manejado. Ambos parámetros son pasados
por valor.
Si un parámetro es declarado por referencia
ByRef el parámetro apunta
al argumento actual. Por default los
argumentos se pasan por valor ByVal
el parámetro es una copia local del
argumento.
- Sub procedures, contiene código
que el desarrollador crea para realizar
una acción lógica.
- Function procedures, contiene
código que el desarrollador crea para
realizar una acción lógica y regresa un
valor, el valor que una función envia
de regreso al programa que lo invoco es
llamado valor de regreso. Para regresar
un valor se utiliza la sentencia
Return.
Ámbito
de las variables
Cuando es declarada una variable también
se define su ámbito, el ámbito de una variable
es la región de código en la cual la variable
se referencia directamente. Existen dos
tipos de ámbitos de las variables:
- Local, es una variable declarada
dentro de un procedimiento y se destruye
cuando el procedimiento termina de ejecutarse.
- Módular, es una variable declarada
a nivel módulo fuera de cualquier procedimiento
y son declaradas en la parte superior
del Editor de Código arriba del primer
procedimiento, este espacio es llamado
Sección de Declaraciones Generales (General
Declaration Section).
Convenciones
para el nombre de los controles
Es recomendable utilizar convenciones
para el nombre de los controles, es decir,
que al momento de dar lectura
al código sea fácil de entender y comprender,
por lo que el establecimiento de convenciones
ayuda a identificar que control se empleo,
por ejemplo, si emplea un control botón
emplee siempre como prefijo btn depués
completelo con un nombre descriptivo acorde
a la funcionalidad que este tendrá.
| Control
|
Prefijo
|
Button |
Btn |
Label |
Lbl |
PictureBox |
Pic |
Timer |
Tmr |
Text Box |
Txt |
List Box |
Lst |
Combo Box |
Cbo |
Check Box |
Chk |
Radio Button |
Rad |
Control Button
(antes CommandButton)
El control CommandButton en Visual
Basic .NET recibe el nombre de Button,
la propiedad Caption ahora recibe
el nombre de Text, ocurre lo
mismo para el caso del control Label.
Control
Label
El control Label ahora su
propiedad Caption recibe el nombre
de Text y por ejemplo la antes
propiedad Alignment ahora recibe
el nombre de TextAlign la cual
tiene más opciones de alineación.
Control
TextBox
El control TextBox tiene
una capacidad de almacenamiento de 32 Kbytes
de texto.
Control
DateTimePicker
El control DateTimePicker
muestra por defecto la fecha actual que
es posible modificar a través de su propiedad
value.
Este control puede mostrar fechas u horas,
si desea mostrar horas utilice:
nombreControl.Format = DateTimePickerFormat.Time
Control
LinkLabel
A través de este control es posible abrir
el navegador por default y acceder a un
URL especifico:
LinkLabel1.LinkVisited = True
System.Diagnostics.Process.Start(LinkLabel1.Text)
Donde LinkLabel1.Text es
el valor que tiene asignado la propiedad
Text por ejemplo file:///C:/pagina.html
si quiere probar sin tener acceso a internet
o si quiere probar con acceso a internet
seria http://www.elSitioWeb.com.
Si requiere especificar el navegador con
el cual desea abrir el URL basta con señalarlo:
System.Diagnostics.Process.Start("firefox.exe", LinkLabel2.Text)
'La página se mostrara utilizando el navegador firefox
Es necesario señalar algo importante del
código y adentrarnos a la programación .NET,
ya que el método Start de la
clase Process inicia en memoria
un proceso de programa ejecutable para el
navegador.
La clase Process hace mucho
más que eso pero la parte a destacar es
que forma parte de la biblioteca de objetos
System.Diagnostics la cual
los programadores Visual Basic .NET llaman
espacio de nombres
System.Diagnostics.
En cuanto al método Process.Start
destaca que además de abrir una página web
puede ser utilizado para ejecutar otras
aplicaciones:
System.Diagnostics.Process.Start(LinkLabel3.Text)
'Donde el valor de LinkLabel3.Text es "winword"
El método Start utiliza 2
argumentos, el primero especifica la aplicación
a emplear y el segundo especifica el archivo
que abrira la aplicación, es decir, el siguiente
ejemplo abre el archivo indicado con Microsoft
Excel:
System.Diagnostics.Process.Start("excel", "c:\pagos.xls")
Controles
Anteriores y Otros Controles
Es posible utilizar antiguos controles
ActiveX y utilizarlos con algunas limitaciones,
teniendo como restricción técnica que deberán
estar en un contenedor, por ejemplo de clic
con el botón derecho en el separador Windows
Forms seleccione la opción Add/Remove
items y aparecerá una ventana donde
dará clic en el folder COM Components
y eligira el componente que desea agregar.
Control
MainMenu
El Control MainMenu agrega menús
a un programa, el manú se configura mediante
sus propiedades.
Para agregar un menú simplemente seleccione
el control MainMenu el cual de manera
automática se ajusta al tamaño del formulario,
este menú es de fácil manipulación pues
basta con escribir el nombre para las opciones
y a través del menú popup es posible modificarlo.
Una vez agregado el control MainMenu
también se agrega un panel debajo del formulario
la cual recibe el nombre de Bandeja
de Componentes a través del cual
será posible definir y modificar sus propiedades.
Ahora bien lo que se muestra en la parte
superior del formulario es un representación
visual del menú misma que recibre el nombre
de diseñador de menú, pero el objeto menú
principal se muestra en la parte inferior
dentro de la bandeja de componentes.
Para definir teclas de acceso para las
opciones del menú, continua con la forma
de hacerlo en Visual Basic 6 que es anteponiendo
al caracter al cual deseamos hacer referencia
el símbolo &
Si después de escribir las opciones de
su menú desea cambiar el orden basta con
seleccionar y mover la opción a la posición
deseada.
Si desea eliminar una opción del menú
basta con seleccionarla y pulsar la tecla
[Supr] o [Del].
Para agregar código a cada opción del
menú basta con dar doble clic sobre la opción
deseada:
Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles MenuItem2.Click
MsgBox("opción 1_1")
End Sub
Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles MenuItem3.Click
MsgBox("opción 1_2")
End Sub
Private Sub MenuItem5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles MenuItem5.Click
MsgBox("opción 2_1")
End Sub
Funciones
Intrinsecas
Val, regresa el número
contenido en un argumento, se detiene
en el primer caracter no numérico.
CDbl, regresa un valor
double si el argumento puede
ser convertido a double
IsNumeric, regresa True
si el argumento puede ser convertido a
double
Rnd, regresa un valor random
entre 0 y 1
Abs, regresa el valor absoluto
de un número (es necesario importar System.Math)
Int, regresa la parte entera
de un número
FormatCurrency, regresa
un string formateado a moneda y redondeado
a dos decimales
Formar(expr,str), convierte
una expresión a un formato string específico.
Funciones
Financieras
Visual Basic .NET provee funciones financieras
como Pmt(Rate,Nper,PV) para
determinar pagos mensuales y FV(Rate,Nper,Pmt)
para determinar el valor futuro de una anualidad
basada en pagos fijos periodicos e intereses
de tasa fija.
Funciones
de Tiempo y Hora
En Visual Basic .NET existen funciones
a través de las cuales es posible manipular
el tiempo y la hora:
TimeString, regresa la
hora actual del sistema.
DateString, regresa la
fecha actual del sistema.
Now, regresa un valor codificado
que representa la hora y fecha actual
del sistema.
Hour(hora), regresa el
número de hora actual del sistema.
Minute(hora), regresa el
número de minuto actual del sistema.
Second(hora), regresa el
múmero del segundo actual del sistema.
Day(fecha), regresa el
número del día actual del sistema.
Month(fecha), regresa el
número de mes actual del sistema.
Year(fecha), regresa el
año actual del sistema.
Weekday(fecha), regresa
el número que representa el día de la
semana. (1 = Domingo, 2 = Lunes, ...).
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles Button1.Click
txtTimeString.Text = TimeString
End Sub
Private Sub DateString_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles Button2.Click
txtDateString.Text = DateString
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles Button3.Click
txtNow.Text = Now
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles Button4.Click
txtHour.Text = Hour(Now)
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles Button5.Click
txtMinute.Text = Minute(Now)
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles Button6.Click
txtSecond.Text = Second(Now)
End Sub
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles Button7.Click
txtDay.Text = Microsoft.VisualBasic.DateAndTime.Day(Now)
End Sub
Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles Button8.Click
txtMonth.Text = Month(Now)
End Sub
Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles Button9.Click
txtYear.Text = Year(Now)
End Sub
Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles Button10.Click
txtWeekday.Text = Weekday(Now)
End Sub
Cuadros
de Dialogo
Visual Basic .NET cuanta con siete tipos
de cuadro de dialogo que facilitan la construcción
de interfaz de usuario:
OpenFileDialog, obtiene
unidad, nombre de directorio y nombre
de un archivo existente.
SaveFileDialog, obtiene
unidad, nombre de directorio y nombre
para un archivo nuevo.
FontDialog, para que el
usuario seleccione una configuración para
la fuente.
ColorDialog, para que el
usuario seleccione un color de una paleta.
PrintDialog,
para que el usuario defina opciones de
impresión
PrintPreviewDialog,
muestra al usuario una vista previa de
impresión.
PageSetupDialog,
para que el usuario controle las opciones
de configuración de página.
Al momento de diseñar la interfaz de usuario
los controles de cuadro de dialogo no aparecen
en la pantalla pero si se muestran visibles
al pie de la misma, pudiendo acceder a sus
propiedades para configurar el control.
Si requiere hacer visible el cuadro de
dialogo en modo ejecución tendrá que emplear
el método ShowDialog().
El método ShowDialog() regresa
un valor denominado DialogResult,
indicando el botón del cuadro de diálogo
en el que el usuario dio clic.
OpenFileDialog
El control OpenFileDialog representa
un dialogo preconfigurado para seleccionar
un archivo que será abierto. La propiedad
InitialDirectory especifica
el directorio inicial desplegado por la
caja de dialogo de archivo. La propiedad
Filter determina el formato
de archivos que podrán ser presentados en
la caja de dialogo, para desplegar la caja
de dialogo de archivo se utiliza su método
ShowDialog, la propiedad FileName
mantiene es un string que contiene el nombre
del archivo seleccionado.
Suponga un ejercicio donde tiene un control
OpenFileDialog y otro PictureBox,
a través del cuadro de dialogo es posible
seleccionar una imagen, misma que será cargada
y presentada por el control de imagen (*.bmp,
*.emf, *.wmf, *.ico, *.cur, *.jpg, *.jpeg,
*.png, *.gif), es posible utilizar el método
Filter para especificar solamente
los archivos que tengan el formato especificado
(entre formato y formato se utiliza como
separador el símbolo | pipe):
ofd.Filter = "formato 1|*.jpg|formato 2|*.bmp"
ofd.ShowDialog()
pb.Image = System.Drawing.Image.FromFile(ofd.FileName)
Dim dr
dr = ofd.ShowDialog()
MsgBox(dr)
La siguiente línea descarga el control
de imagen:
pb.Image = Nothing
ColorDialog
El control ColorDialog representa
un dialogo preconfigurado que despliega
la caja de dialogo de color estándar, permitiendo
al usuario seleccionar el color o definir
un color personalizado, para desplegar la
caja de dialogo de color se utiliza su método
ShowDialog, la propiedad color
mantiene el color seleccionado por el usuario.
Es posible agregar el control ColorDialog
al formulario aunque esté no este visiblemente
contenido en el formulario pero si visible
en la bandeja de componentes o es posible
agregar el control ColorDialog a
través de código declarando un objeto de
este tipo.
REM Agregando un control ColorDialog al formulario
Private Sub BtnBgColor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles BtnBgColor.Click
CD.ShowDialog()
LblText.BackColor = CD.Color
End Sub
REM Declarando un objeto tipo ColorDialog via código
Private Sub BtnForeColor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles BtnForeColor.Click
Dim FC As New ColorDialog
FC.ShowDialog()
LblText.ForeColor = FC.Color
End Sub
FontDialog
El control FontDialog representa
un dialogo preconfigurado que despliega
la caja de dialogo de fuente estándar, por
default la caja de dialogo muestra cajas
de listas para la fuente, estilo-fuente,
y tamaño, cajas de chequeo para efectos
como subrayado o tachado, también muestra
un ejemplo de como la fuente podría aparecer,
para desplegar la caja de dialogo de fuente
se utiliza su método ShowDialog,
la propiedad font mantiene
el color seleccionado por el usuario.
Es posible agregar el control FontDialog
al formulario aunque este no esté visiblemente
contenido en el formulario pero si visible
en la bandeja de componentes o es posible
agregar el control FontDialog a través
de código declarando un objeto de este tipo.
Private Sub BtnFont_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles BtnFont.Click
Dim FD As New FontDialog
FD.ShowDialog()
LblText.Font = FD.Font
End Sub
PrintDialog
El control PrintDialog es una caja
de dialogo preconfigurada, utilizada para
seleccionar una impresora, escoger las páginas
a imprimir y determinar otras características
de impresión en aplicaciones Windows. Es
posible habilitar al usuario para imprimir
varias partes de sus documentos: imprimir
todo, imprimir un rango de páginas o imprimir
una selección. La propiedad Document
se establece con un objeto PrintDocument,
para desplegar la caja de dialogo de impresión
utilice el método ShowDialog,
la caja de dialogo de impresión almacena
la configuración del usuario en el objeto
PrintDocument y para imprimir
utilice el método Print.
PrintPreviewDialog
El control PrintPreviewDialog es
una caja de dialogo preconfigurada, para
presentar como podría ser el documento cuando
se imprima. La propiedad Document
se establece con un objeto PrintDocument,
el cual tiene propiedades que describen
que será impreso y la habilidad para imprimir
dentro de una aplicación Windows, para desplegar
la caja de dialogo de impresión-previa utilice
el método ShowDialog,
PageSetupDialog
El control PageSetupDialog es una
caja de dialogo preconfigurada que permite
al usuario manipular la configuración de
páginas, incluyendo margenes y orientación
del papel. La propiedad Document
se establece con un objeto PrintDocument,
para desplegar la caja de dialogo de PageSettings
utilice el método ShowDialog,
la selección del usuario se almacena en
la propiedad PageSettings y
debería entonces ser copiado al objeto PrintDocument.
Dim as
Visual Basic .NET no permite el uso del
tipo de dato Variant y todas
las variables deberán ser declaradas por
las instrucciones Dim nombreVarible
as tipoDato.
Dim es la abreviatura de
Dimensión, que sirve para reservar
espacio para la variable. La sentencia Dim
especifica el nombre de la variable y su
tipo de dato asociado.
Las variables deben tener un nombre único
llamado Identificador, los identificadores
se forman siguiendo las siguientes reglas:
- Comenzar con una letra o guión bajo
(underscore)
- Deben contener letras, digitos y guiones
bajos.
- No pueden ser palabras reservadas.
Recomendaciones:
- El nombre de las variables deberían
comenzar con una letra
- El nombre de las variables deberían
distinguir cada nueva palabra escribiendo
la primer letra en mayúscula
- El nombre de las variables deberían
ser lo suficientemente largo para ser
significativo y lo suficientemente corto
para ser manejable.
Una novedad en Visual Basic .NET es la
declaración e inicialización de variables,
ya que es posible hacer esto al mismo tiempo:
Dim nombreVariable as tipoDato = valorInicial
Si no se define un tipo de dato para la
variable, entonces asume el tipo de dato
por default que es Object.
Es posible declarar variables como se
hacia en Visual Basic 6, si emplea la instrucción
Option Explicit Off.
Option Explicit Off
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles MyBase.Load
v = "xxx" & 5
MsgBox(v)
End Sub
End Class
Visual Basic .NET incorpora la instrucción
Option Strict si desea que
los tipos de datos en las operaciones sean
del mismo tipo y evitar la conversión y
perdida de datos.
Ámbito
de las Variables
- Local, visible únicamente a nivel
procedimiento.
- Pública y al inicio del formulario,
visible únicamente a nivel formulario.
- Pública y al inicio del módulo,
visible únicamente a nivel proyecto.
InputBox
A través de la función InputBox
es posible manipular la entrada de datos
por parte del usuario, pudiendo almacenar
en una variable los datos ingresados por
este.
Dim sRespuesta As String
sRespuesta = InputBox("Password : ", "Usuario", , 500, 500)
If sRespuesta <> vbNullString Then
MsgBox("Validación de usuario y password pendiente...")
Else
MsgBox("Es necesario proporcionar su password")
End If
El primer parámetro que recibe esta función
es un texto indicativo para el usuario,
un texto para el título de la ventana, un
valor inicial para el campo donde el usuario
ingresará datos, un número que representa
la coordenada X y otro número que representa
la coordenada los cuales indican la posición
en donde se presentará la ventana de ingreso
de datos.
Tipos
de Datos
Los tipos de datos numericos en Visual
Basic .NET se agrupan en dos categorias:
enteros y de punto flotante.
Los tipos de datos numericos a su vez
se agrupan en, Byte, Short, Integer y
Long.
Los tipos de datos de punto flotante son
Single y Double.
Los tipos de datos Char almacenan
un sólo caracter en formato Unicode.
Los tipos de datos String almacenan
una secuencia de caracteres Unicode.
Unicode es un sistema internacional de
codificación de 16-bit que cubre valores
para más de 45,000 caracteres. Un caracter
Unicode es almacenado como un valor numerico
sin signo de 16-bit, de 0 a 65535. Los primeros
128 (0-127) caracteres Unicode corresponden
al conjunto de caracteres ASCII. Del 32
al 127 corresponden a caracteres alfanumericos
y simbolos para un teclado US. Del 128 al
255 representan caracteres especiales.
El tipo de dato Boolean es un valor
sin signo el cual es interpretado como falso
o verdadero.
El tipo de dato Date almacena fechas
y tiempo, el rango de valores posible es
del 12:00:00 AM Enero 1 al 31 de Diciembre
del 9999 11:59:59 PM. Los valores para las
fechas deben ser encerrados entre el signo
# y con el formato m/d/aaaa,
por ejemplo #12/7/1971#.
El tipo de dato Object es el tipo
de dato universal en Visual Basic .NET y
es también el tipo de dato por default para
las variables que son declaradas sin especificar
su tipo de dato.
Tipos
de Datos Definidos por el Usuario : Structure
Visual Basic permite al desarrollador
crear sus propios tipos de datos, esto es
posible.NET a través del empleo de la instrucción
Structure, ejemplo:
Structure Persona
Dim sNombre As String
Dim nEdad As Integer
Dim dFechaNac As Date
End Structure
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles MyBase.Load
Dim Empleado As Persona
Empleado.sNombre = "Gerardo Ángeles Nava"
Empleado.nEdad = 33
Empleado.dFechaNac = "21 / 9 / 1971"
txtOutput.Text = Empleado.sNombre & vbNewLine
txtOutput.Text += Empleado.nEdad & vbNewLine
txtOutput.Text += Empleado.dFechaNac
End Sub
Cada variable declarada dentro de la estructura
es llamado un member.
Definición una estructura vacia:
Dim Empleado As Persona = {}
Constantes
Una constante es aquella que almacena
un valor que no es posible cambiar durante
la ejecución del programa.
Se recomienda que el nombre de una constante
sea escrito en su totalidad en mayúsculas.
Const PI As Double = 3.14159265
Si desea que la constante esté disponible
para todos los formularios y módulos
de la aplicación deberá ser declarada en
un módulo y anteponer a su declaración la
palabra reservada Public.
REM Escribir en un Módulo
Public Const PI As Double = 3.14159265
Operadores
Visual Basic .NET dispone de los siguientes
operadores matemáticos:
| Operador |
Descripción |
+ |
Suma |
- |
Resta |
* |
Multiplicación |
/ |
División |
\ |
División entera (parte entera de la
división) |
Mod |
Residuo (resto de la división entera) |
^ |
Exponenciación (elevar a una potencia) |
& |
Concatenación de Cadenas |
Dim nInc As Integer
For nInc = 1 To 10
If nInc Mod 2 = 0 Then
txtOutput.Text += nInc & " es par " & vbNewLine
Else
txtOutput.Text += nInc & " no es par " & vbNewLine
End If
Next
txtOutput.Text += "10/0 = " & CStr(10 / 0)
La división entre 0 no está permitida
en los cálculos matemáticos ya que produce
un resultado infinito, en la versión Visual
Basic 6 hacer esto produce un error de ejecución
11 "División entre 0", pero en Visual Basic
.NET se maneja esta situación automáticamente
y muestra un valor de Infinito.
Ponga atención en el siguiente código
y tenga cuidado al comparar resultados ya
que el valor que regresa la excepción del
cálculo matemático entre 0 es Infinito
con la primer letra en mayúscula:
If CStr(10 / 0) = "infinito" Then
MsgBox("manejador de cálculo")
Else
MsgBox("No es lo mismo -infinito- e -Infinito-")
End If
If CStr(10 / 0) = "Infinito" Then MsgBox("manejador de cálculo")
Operadores
Aritméticos
Los operadores aritméticos requieren operadores
numéricos (^,*,/,\,Mod,+,-)
y producen resultados numéricos.
Operadores
String
El operador de concatenación (&)
String requiere operadores String y producen
resultados String.
Operadores
Comparativos
Los operadores Comparativos requieren
operadores Comparativos (>,<,>=,<=,=,<>)
y producen un resultado lógico (True
or False).
Operadores
Lógicos
Los operadores Lógicos requieren operadores
Lógicos (NOT,AND,OR,XOR) y
producen un resultado lógico.
Operadores
Abreviados
Visual Basic .NET incorpora nuevos operadores
abreviados que facilitan la escritura de
código, por ejemplo:
x = x + 1 'Antes escribia
x += 1 'Ahora puede escribir
| Operadores
Abreviados |
+= |
-= |
*= |
/= |
\= |
^ |
&= |
Precedencia
de Operadores
A continuación se muestra el orden de
precedencia/prioridad/jerarquía de los operadores
en Visual Basic .NET
| Precedencia
de Operadores |
( ) |
^ |
- |
*/ |
\ |
Mod |
+- |
Sentencias
de Control
Trataremos de destacar las novedades y
cambios en cuando lo referente a Visual
Basic .NET y citaremos la referencia al
Tutorial de Visual Basic 6.
Sentencias
de Control
A manera de resumen recordaremos que For
se utiliza cuando se conoce de antemano
el número de iteracciones a ejecutarse.
Do se utiliza cuando no se
conoce de antemano el número de iteraciones
a ejecutarse. Si al menos debe ejecutarse
1 iteración es necesario colocar la expresión
condicional al final del ciclo. Evite ciclos
infinitos, para ello asegurese de que estos
ciclos tengan una expresión condicional
de salida. Utilice Until a
diferencia de While cuando
requiera que la expresión condicional sea
la contraria, por ejemplo con While
la expresión condicional podría ser A
<> B y con Until podría
ser A = B.
La única sentencia de control que tiene
un cambio relevante sintacticamente es While
ya que antes se escribia While ...
Wend ahora es necesario escribir
While ... End While.
Visual Basic .NET incorpora 2 nuevos operadores
lógicos para utilizarlos en las sentencias
de control, a continuación se mostrará la
tabla de operadores lógicos anteriores y
nuevos:
| Operadores
Lógicos |
Descripción |
tr>
And |
Las 2 expresiones deben
ser verdaderas |
Or |
Alguna de las 2 expresiones
es verdadera |
Not |
Negación del resultado
de la expresión |
Xor |
Si 1 y sólo 1 de las
expresiones es verdadera |
AndAlso |
Si
la primer y segunda condición son verdaderas |
OrElse |
Si
la primer o segunda condición es verdadera |
Los nuevos operadores lógicos AndAlso
y OrElse reciben el nombre
de sistema de corto-circuito.
Dim nCalificacion As Integer = 0
If nCalificacion <= 0 AndAlso nCalificacion / 0 Then
MsgBox("Error de lógica")
Else
MsgBox("Continuar cálculo")
End If
Parece que el operador lógico AndAlso
como OrElse nos ahorran escribir
un If dentro de otro If/else
y quizá evitar un error en tiempo de ejecución.
Dim nCalificacion As Integer = 0
If nCalificacion < 0 OrElse nCalificacion / 0 Then
MsgBox("Error de lógica")
Else
MsgBox("Continuar cálculo")
End If
Do
... Loop
La sentencia de control Do ... Loop
es la sentencia general iterativa, la cual
permite ejecutar repetitivamente un grupo
de sentencias hasta que una condición sea
cumpla. Existen cuatro versiones de la sentencia
Do ... Loop :
-
Do While condición
sentencias
Loop
-
Do Until condición
sentencias
Loop
-
Do
sentencias
Loop While condición
-
Do
sentencias
Loop Until condición
Exit
La sentencia Exit permite
salir inmediatamente de una decisión, ciclo
o procedimiento.
Control
Timer
A través del control Timer
es posible ejecutar una instrucción en un
intervalo de tiempo especifico, este Timer
se activa estableciendo su propiedad Interval
con el valor True y se ejecutará
hasta que por medio de la acción del usuario
lo detenga o se desactive el temporizador.
Cuando agrega un Timer este
no es visible en el formulario pero si en
la parte inferior de la pantalla (Bandeja
de Componentes), justo debajo del formulario.
En Visual Basic .NET el nombre del control
cambia su nombre por Timer_Tick
Por ejemplo si desea que se ejecute una
acción cada segundo, será necesario cambiar
el valor de la propiedad Interval
a 1000 milisegundos.
Para iniciar la ejecución del propio Timer
es necesario establecer el valor de la propiedad
Enabled a True.
Para detencer la ejecución del Timer
es necesario invocar el método Stop().
Dim i As Integer = 0
Private Sub btnInicio_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles btnInicio.Click
Timer1.Enabled = True
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Timer1.Tick
lblTic.Text = CStr(i)
i += 1
End Sub
Private Sub btnFin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles btnFin.Click
Timer1.Stop()
End Sub
Sentencia
Rnd()
Visual Basic .NET provee la función Rnd()
la cual genera un valor aleatorio (random)
entre 0.0 y 1.0
Private Sub BtnMakeRnd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles BtnMakeRnd.Click
TxtOut.Text = Rnd()
End Sub
Note que cada vez que da clic al
botón se genera un número aleatorio (random)
y se muestra en la caja de texto, pero cierre
el programa y ejecutelo de nuevo, notará
que siempre dá la misma secuencia de números,
es por ello que a estos números se les llame
pseudo-aleatorios.
Si requiere obtener un número entero a
partir del número generado, en vez de la
fracción, entonces multipliquelo por 10
y después redondeelo utilizando la función
de redondeo de la clase Math
Private Sub BtnMakeRnd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles BtnMakeRnd.Click
TxtOut.Text = Rnd()
TxtOut2.Text = TxtOut.Text * 10
TxtOut3.Text = Math.Round(TxtOut.Text * 10)
End Sub
Otra manera de obtener la parte entera
es utilizar la función Int,
si desea que el número generado se encuentre
en un rango, solamente tiene que hacer una
multiplicación del número del límite superior:
Private Sub BtnMakeRnd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles BtnMakeRnd.Click
If Trim(TxtRange.Text) <> vbNullString Then
TxtOut4.Text = Int(Rnd() * (TxtRange.Text + 1))
Else
TxtOut.Text = Rnd()
TxtOut2.Text = TxtOut.Text * 10
TxtOut3.Text = Math.Round(TxtOut.Text * 10)
End If
End Sub
Salida, los números generados comprenden
el rango de 0 a límite superior.
Randomize
La función Rnd crea siempre la misma secuencia
de números aleatorios, para crear un auténtico
número aleatorio utilice el método Randomize
la cual utiliza el reloj de la PC para crear
un punto de inicio aleatorio el cual será
utilizado después por la función Rnd.
Private Sub BtnRndmize_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles BtnRndmize.Click
VBMath.Randomize() ' Initialize random-number generator.
TxtOut.Text = Rnd()
End Sub
El método Randomize pertenece
a la Clase Microsoft.VisualBasic.VBMath.
Depuración,
Tipos de errores
Existen 3 tipos básicos de errores, los
fáciles de encontrar, solucionar y que no
causan problemas de mantenimiento (sintaxis),
los difíciles de encontrar, solucionar y
que causan probelmas potenciales de mantenimiento
(lógica):
- Errores de
compilación o de Sintaxis, son
aquellos errores en los cuales la estructura
sintáctica definida por el lenguaje no
conc
|