|
|
|
1) Generar Arrays de Controles |
Bajar los
fuentes |
|
Aquellos que "saben",
saben que en Visual Basic generar un array de controles más que fácil, era
molesto, dado que cuando se copiaba un Label o TextBox, al pegar venía la
clásica, molesta y, muchas veces, perniciosa pregunta "Desea generar un
array de controles", cosa que en muchos casos, generaba un "array de
problemas".
En Visual Net, parece que
lo desconectaron y gracias a la insistencia de J. J. Caires (a) Coco,
logré deducir la mecánica para lograrlo.
En este breve ejemplo,
defino 2 arrays conteniendo 7 controles cada uno (Cuadros de Texto y
Etiquetas), los cargo y los distribuyo en el Formulario y les asigno
valores de ejemplo. En si, no cumple ninguna función, tan solo es un tema
didáctico. |

|
|
2) El Comando Color en VbNet |
Bajar los fuentes |
|
Existen al menos, dos
métodos para asignar color en VB Net: con Color.xxx o con
Color.FromArgbColor().
Primero el más sencillo.
Color.Argumento
Ej. Color.Red o Color.AliceBlue
Este programita no será
genial, pero es algo laborioso. |
 |
|
3) El Comando Color.FromArgb() en VbNet |
Bajar los fuentes |
|
Al intentar utilizar mis
conocimientos de Visual Basic para controlar los colores en VBNet, sufrí
una profunda decepción. Buscaba transferir color por números como por
ejemplo Label1.BackColor = 15605 o Picture1.BackColor=VbRed... Nada,
hambre y amargura. Nada funcionaba. Por cierto, mucho menos:
Form1.BackColor=QbColor(9).
Para colmo los help aseguran que: Label1.BackColor=Microsoft.VisualBasic.RGB(200,34,120)
anda. O yo no entiendo s con esta versión 2002, es una utopía.
Si escribimos: Text = Microsoft.VisualBasic.RGB(0, 230, 0), no genera
error, pero tampoco sirve.
Sin embargo un día descubrí una forma similar al RGB(), el Color.FromArgb()
que en este ejemplo utilizo.
|
 |
|
4) Editor de Texto |
Bajar los fuentes |
|
En la confección de este
programa, he reunido un gran variedad de instrucciones y funciones muy
interesantes. Aquí aprenderemos a utilizar un MainMenu (que reemplaza con
creces al editor de menúes del VB6). Algunas excelentes propiedades del
RichTextBox. Otros controles como OpenFileDialog, SaveFileDialog,
PrintPreviewDialog, PrintDialog, PrintDocument, ColorDialog, FontDialog,
etc.
Lo que no logro que funcione correctamente es la impresión de un
RichTextBox. Incluso lo previsualiza mal. Alguna vez lo averiguaré
(supongo). Parece ser que debe usarse el Crystal Report, lo que me hace
pensar si es que a veces Microsoft no va para atrás!
Comencemos con la
utilización del MainMenu: Al colocarlo en el formulario, podremos
observar en la parte superior de este, debajo del título, la frase
"Escriba aquí" resaltada en blanco. Haciendo aquí en este letrero (que se
pondrá de color azul oscuro), escribiremos el título del primer menú; "Archivo".
Al momento observaremos que se "disparan" dos nuevos letreros "Escriba
aquí" con resalte blanco debajo y a la derecha de lo que acabamos de
escribir, algo asi como puede verse en la imagen a nuestra derecha (Figura 2).
Haciendo click en el letrero de abajo, escribiremos "Nuevo" seguido de
Enter. Pasaremos a otro cuadro en azul donde escribiremos "Abrir" (siempre
sin comillas, que van de adorno en esta explicación). Luego del Enter de
rigor, escribiremos "-" (ojo el guión que está abajo de la Ñ, no el signo
menos del teclado numérico) y Enter, despues "Guardar", "Guardar Como",
"-", "Vista Preliminar", "Imprimir, "-" y "Salir".
|
Figura 1
 Figura 2
 |
|
Llegará un momento en que
la vista quedará como se observa a la derecha
(Figura 3).
Despues iremos agregando
los menúes paralelos a "Archivo", o sea: "Edición"
(compuesto por; "Cortar", "Copiar", "Pegar", "-" y "Seleccionar Todo"), "Formato"
("Fuente" y "Párrafo") y "Zoom" (Este es espectacular). Por si no
se dieron cuenta los guiones (-), son las líneas separadoras de los
bloques de submenúes.
Todas estas operaciones
van escribiendo rutinas de nombre MenuItem2_Click, MenuItem3_Click, etc. en donde se
hará, más tarde, la codificación oportuna. En la Ventana de Propiedades,
podríamos cambiar el nombre (Name) de estos menúes, como cualquier objeto
o asignarle una tecla abreviada (Shortcut) (ver Figura 5, abajo a la derecha). El & que antecede al texto
del menú (&Nuevo), tiene por misión premitir acceder al menú oprimiendo la
tecla Alt y N durante la ejecución (Nuevo).
Para poder cualquier cada menú, lo único que
debemos hacer es hacer doble click en él y entraremos en su área de
codificación (al igual que cualquier objeto).
Pondremos el RichTextBox
debajo de la tira de menúes. Y como propiedades de base, le pondremos
anclaje en los cuatro puntos a Anchor, Font Arial 12 puntos,
ScrollBars Vertical y, tal vez, el Text que vemos en Figura 1.
El trabajo final quedaría
como puede verse en la Figura 1.
Al Form, le pondremos
WindowsState Maximized (preferentemente).
En fin considero que este
programa puede ser el más largo de todos mis ejemplos, pero vale la pena
estudiarlo pues contempla muchas instrucciones de gran utilidad.
El aspecto final del armado sería el de la
Figura 4 abajo.
Figura
4

|
Figura 3

Figura 5

Colocar un ComboBox debajo del Menú Zoom y rellenarlo con
los siguientes valores (porpiedad Items): 500 200 150 100 75 50 25 10, una
cifra debajo de la otra.
|
|
5) Visual File |
Bajar los fuentes |
|
Aquí trateremos la
utilización del Control Viewer que en Visual Net se renombra como AxViewer.
Este control permite abrir cualquier tipo de archivo porque al igual que
el explorador de Windows, asocia al archivo con el programa que lo puede
abrir. Si no hay asociación alguna, no lo activa. De esta forma podemos
abrir fotos, sonidos, documentos de Office (prueben una planilla Excel y
observarán que hasta les permite hacer cálculos), archivos Htm y por ende
páginas Web, formatos Pdf, Txt, etc.
Dentro de los etc., abre
.Exe (aplicaciones), Dll (librerías) y otros, por lo que les recomiendo
precaución, dado que desconozco los riesgos, (recuerden al famoso
monito con navaja).
Para cargar este control
debemos activar el Menú - Personalizar cuadro de herramientas... (Ctrl T)
y en la pestaña que se ve de arranque (Componentes COM), tildar la casilla
Viewer Class cuya librería debería ser:
C:\Windows\System32\InTouchViewer.dll.
Tomando el control Viewer
(figura 2), lo desplegaremos en el form
en Left 7, Top 0, con Size 1006, 720 y Anchor
completo o sea; Top, Bottom, Left, Right.
Al Form1 le otorgaremos
WindowState Maximized y Text Visual File.
Agregaremos un control
MainMenu y le asignaremos los menúes Abrir, "-" y Salir.
|
Figura 1 
El resultado de todos
estos preparativos sería (aproximadamente) el de la figura 1. En el ejemplo Nº 4 de Visual Basic
(Multivisión) encontraremos un
equivalente más completo. |
|
6) Shell |
|
|
En
este peculiar ejemplo, trato de explicar algunos usos de la función Shell()
inherente a los Basic. Shell posibilita ejecutar casi cualquier comando
externo a la aplicación en curso. En este programa lo utilizo para invocar
al Explorador de Windows en dos formas diferentes y también para ejecutar
un comando externo del DOS (el Xcopy) con la finalidad de copiar archivos.
Se puede usar, por ejemplo, para copiar determinados archivos de una
aplicación que lo requiera (copias de respaldo).
Dado que uso el Xcopy,
utilizo un archivo batch para favorecer la tarea, por lo que (si no bajan
los fuentes) les debo indicar que con el Notepad generen un archivo de
nombre "Copiador.Bat" y lo almacenen en la carpeta "Bin" de
la aplicación que Uds. emprenderán. El archivo debe contener las
siguientes líneas:
echo off cls echo
"Copia de Archivos en DOS" xcopy Origen\*.* /s Destino pause
Aparte deberán crear
dentro de la mencionada carpeta "Bin" las subcarpetas "Origen"
y "Destino", en "Origen" incluyan algunos archivos para que se
puedan observar los resultados de la copia, dado que desde Origen",
copiaremos todo a "Destino". Como podrán notar, más que un ejmeplo
de VbNet, se trata de un ejemplo de DOS (o sea que el DOS sigue con
vida!!). La foto 2 ilustra el aspecto de
la carpeta Bin de nuestra aplicación. |
Figura 1

Figura 2

Por cierto que
para copiar archivos, VbNet tiene dispuesto el comando FileCopy() que en
otro ejemplo lo expondré. Por lo demás aquí estudiamos CurDir(), que es equivalente a App.Path del Vb6 y
uno de los grandes secretos del control de rutas de archivos en las
aplicaciones. |
|
7) ToolTip |
Bajar los fuentes |
|
Este ejemplo pretende
demostrar la utilización del Tooltip. ¿Recuerdan que casi todos los
controles del Visual Basic 6 traía dentro de sus propiedades esta opción
de mostrar un globito de ayuda sobre la función de cada objeto?. Pues en
VbNet viene aparte, en un control denominado precisamente Tooltip.
Aprovechando el ejemplo, veremos el uso de Fontdialog y Colordialog, dos
potentes herramientas de diseño. Una vez desplegado este Control sobre el
Formulario (en realidad queda fuera y por debajo de él), al hacer click
sobre cualquier control, apreciaremos que aparece la propiedad Tooltip en
la Ventana de Propìedades (F4) en su parte inferior (justo donde estábamos
acostumbrados a verla en Visual Basic 6).
En la figura de la
izquierda vemos desplegados todas las herramientas que necesitaremos, sólo
falta aclarar algunos de su atributos.
El botón Color que
manejará el color de fondo del TextBox, tendrá como Tooltip; "Color de
Fondo".
El botón Fuente:
"Fuente".
Salir: "Salir de la
Aplicación".
El TextBox: "Escribe lo
que se te ocurra".
El Form1 tendrá de
ToolTip: "Experimentos con Tooltip" y de Text; Tooltip.
Noten que FontDialog nos
permite utilizar un botón Aplicar (FontDialog1.ShowApply =
True) siendo su área de codificación:
Private
Sub FontDialog1_Apply(ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles FontDialog1.Apply |

|
|
8) Valida Texto |
Bajar los fuentes |
|
Este ejemplito permite
estudiar la forma de validar entradas por teclado durante la escritura en
un cuadro de texto. |
|
|
9) Pega Imágenes |
Bajar los fuentes |
|
Este corto y sencillo
ejemplo permite pegar en el Form cualquier tipo de imagen que se halla
copiado previamente, inclusive con la tecla Imprimir Pantalla (Screen
Entera) o Alt <der> Imprimir Pantalla (Ventana Activa). Para probarlo
copien una imagen o usen las teclas mencionadas y hagan clik en el Form.
Se puede salir con Esc. |
|
|
10) Selector y Visualizador de Imágenes |
Bajar los fuentes |
|
Este ejemplo muestra varias
funciones interesantes. Manejo de Menúes, ToolTip, Array de Controles
PictureBox (con carga y descarga de sus elementos), carga y utilización de
un ComboBox, transferencia de imágenes desde la memoria a PictureBox y
entre dos PictureBox. Activación y transferencia de un Form principal a
uno secundario. Control del tamaño de dicho Form secundario. ¿Qué hace?
Permite con Cargar (F2) copiar y mostrar diferentes imágenes que se hayan
copiado al portapapeles e indexarlas en un ComboBox y desde este,
presentarlas en un Form2 para visualizarlas en su tamaño real. Mediante el
Menú descargar es posible quitar ese conjunto de imágenes del Form1.
|
El conjunto del MainMenu
se compone de Archivo, Cargar (F2), Descargar, "-" y Salir.
Detalles del Form2:
Nombre = Form2, WindowsState = Normal, MaximizeBox = False.
Detalles del PictureBox
incluido dentro del Form2: Nombre = PictureBox1, Anchor (los cuatro
sentidos), SizeMode = AutoSize.
|
|
11) Intervalos de Fechas |
Bajar los fuentes |
|
Aquí experimento las
funciones de fecha DateAdd() y DateDiff() para calcular intervalos entre
dos fechas. Con la primera calculo que fecha resulta de sumar meses a una
inicial, pero también se podría calcular sumando días, semanas, años, etc.
Todo depende del parámetro de DateInterval
que se utilice. Este manejo se puede observar en la
codificación de Button1.
¡avise!
 |
Con respecto
a la función DateDiff(), hago un manejo más amplio de las formas
principales de
DateInterval. Calculo los intervalos
entre dos fechas en forma de años, días, meses, semanas, trimestres,
horas, minutos, segundos. (Ver Button2).
También
muestro el nombre del día de la semana de las fechas Format(Fecha, "dddd"),
valido el ingreso de fechas IsDate() y hago conversión a fechas CDate().
Si me pregunto ¿por qué la fecha mínima límite mínima es 07/01/0001 y no
01/01/0001?, la única respuesta que encuentro
es porque la diferencia entre el nacimiento histórico de Cristo
(25/12/0000) y el 07/01/0001 es de 13
días. Podrán notarlo en el ejemplo de la imagen de la derecha, en que
Fecha Anterior es = 25/12/0001 (año 0000 es ilegal) y Fecha Actual =
07/01/0002. ¿Será alguna cábala de los muchachos de Microsoft? Si alguien
tiene una respuesta más coherente
El límite máximo del rango de fechas es: 31/12/9999, la diferencia es:
3.652.052 días (unos 9998) años. Si quieren probar la eficacia; ingresen
la fecha 14/10/1066 (batalla de Hastings, domingo) o 25/05/1810 (Cabildo
Abierto en Buenos Aires, viernes) .
|
|
12) Conceptos de Dibujo |
Bajar los fuentes |
|
Este ejemplo muestra la
forma en que se puede dibujar en VbNet. Empleo dos procedimientos que
trazan líneas y rellenan rectángulos en un PictureBox. Para dibujar se
mantiene oprimido el botón izquierdo del mouse y para pintar; el derecho. |
|
|
13) Carga y Visualización de una Base
Access |
Bajar los fuentes |
|
Se desarrolla la carga y
visualización de una base de datos por codificación, tratando de que sea
lo más simplificada posible. La base del ejemplo se encuentra en la misma
carpeta de la aplicación y para encontrarla utilizo
CurDir("C"), que permite definir el Path (es el
equivalente al App.Path del Visual Basic 6. Si
no desean utilizar esta base, en la línea donde declaro la variable Archi,
deberán cambiar el nombre de la base de datos. También pueden bajar los
fuentes y allí la van a encontrar (carpeta Bin de la aplicación).
En este ejemplo, no se contempla la modificación de los datos (eso es otra
historia...)
|
|
|
14) Botón llamador |
Bajar los fuentes |
|
Este breve ejemplito
permite llamar al botón 2 desde el 1. Puede ser de utilidad para llamadas
de subrutinas. En Vb 6, se hacía en forma sencilla, en VbNet, requiere un
poco más de elaboración, pero se puede. |
 |
|
15) Funciones Matemáticas |
Bajar los fuentes |
|
 |
En este ejemplo muestro algunas funciones matemáticas, no las explico, tan
sólo las muestro. La explicación la debes encontrar tú mismo, estudiando
como hice yo. Utilizo la importación de las funciones matemáticas con Imports System.Math, pero si quisiera, podría
utilizar la sintaxis completa, por ej. Math.Sin(21), en lugar de Sin(21), nos devuelve el seno de 21 radianes. |
|
16) Hora |
Bajar los fuentes |
|
Nos muestra la hora
actual dividida en: Hora, minutos, segundos, utilizando funciones. |
 |
|
17) Diccionario |
Bajar los fuentes |
|
Este pequeño ejemplo no
pretende ser un diccionario, pero muestra otro recurso de VBasic para
indexar términos. En el cuadro Clave se puede ingresar la abreviatura de
una ciudad y si la encuentra, aparece en el cuadro de texto inferior.
Utilizo una función que devuelve el término (si existe).
|
 |
|
18) Charly |
Bajar los fuentes |
|
 |
Charly es un pequeño programita que te permitirá (con suerte)
reproducir el texto a voz. Permite escuchar con voz masculina o femenina.
Podrás escribir o adquirir texto copiándolo desde cualquier programa (de
texto) y pegándolo con el botón pegar.
No apliqué todos los recursos del control, pero con poco hace bastante. |
|
19) ADO RX |
Bajar los fuentes |
|
Muestro todo un proceso
del manejo de ADO internamente. Hago una radiografía muy interna de la
estructura de una base de datos, pasando por las diferentes capas hasta
llegar a la exterior (la vista de los datos). Con este ejemplo, creo, que
se puede encarar el estudio de las técnicas de controles ADO. He visto
muchos ejemplos, pero ninguno me ha parecido muy claro, tal vez este
tampoco lo sea, pero a mi me sirvió.
En futuros ejemplos explicaré como llenar controles con los datos para un
uso más práctico. Este ejemplo pretende mostrar la parte interior de estos
procesos.
Encontrarán, por otra parte, ejemplos de carga de ListBox y generación de
Array de Controles.
|
 |
|
20) Calendario |
|
|
Estaba aburrido, me puse
a investigar los controles complementarios y encontré este calendario. La
única propiedad útil que le descubrí es la de Value (o _Value). En este
ejemplo me sirve para mostrar la fecha en el encabezado del Form. Tal vez
tenga otras propiedades (investiguen). El control se implementa con Ctrl T
o Menú Herramientas - Personalizar cuadro de herramientas... o
directamente haciendo click con el botón derecho en el panel del Cuadro de
Herramientas (Personalizar cuadro de herramientas...), tildando la casilla
de Control Calendar 8.0 y Aceptar. Todo control implementado, en Visual
Net queda instalado para siempre en el Cuadro de Herramientas. Los
controles pueden retirarse haciendo click con el botón derecho y Eliminar. |
 |
|
Código Fuente |
Componentes |
|
Public Class Form1 Inherits
System.Windows.Forms.Form #Region
" Código generado por el Diseñador de Windows Forms "
' Para copiar el ejemplo, de aquí para abajo
Private Sub AxCalendar1_AfterUpdate(ByVal
sender As System.Object, ByVal e As System.EventArgs) Handles
AxCalendar1.AfterUpdate
Text = AxCalendar1.Value End Sub
End Class ' No copien esto pues ya debe estar |
1 Calendar
|
|
21) Validación de Fechas |
Bajar los fuentes |
|
Pequeño
ejemplo para validar fechas. |

|
|
|