Tener un conjunto de controles para realizar una acción donde cada control esta relacionado con su posición en el arreglo. Por ejemplo en la calculadora hecha en VB, los botones de comandos representando los números de 0-9 fueron creados como un arreglo. La posición Indice (index) de cada botón de comando esta en correspondencia con la etiqueta de su Caption. Haciendo click en cualquiera de estos botones ejecutará la misma pieza de código, y el valor del índice se usa para mostrar el caracter apropiado del 0-9 que se leera en la caja de texto.
Es fácil hacer esto. Creamos el primer elemento en la forma normal usando la caja de herramientas. Supongamos que creamos una caja de texto llamada Text1. Ahora seleccionamos Text1 (dando clic en él) y escogemos copiar del menú Edit. En seguida sleccionamos Paste del mismo menú. VB deberá presentar una caja de díalogo diciendote que ya tienes un control con el mismo nombre y te pregunta si deseas crear un arreglo, si contestas YES estas creando el arreglo de dos elementos hasta este momento, si contestas NO se crea otro nuevo objeto. Al contestar YES y crear el arreglo con un nuevo elemento, inspecciona la ventana de propiedades de los dos objetos veras que las cajas se llaman Text1(0) y Text1(1); Al primer elemento en un arreglo de VB se le da el índice de 0. Continua creando tres cajas de texto más y ve sus índices.
Lo más importante que tenemos que recordar cuando nos referimos a un arreglo (array) es su índice. Para usar un poco el control Array, aquí tenemos una pequeña pieza de código para un arreglo de cajas de texto que tu deberás crear.
Coloca el color amarillo en la propiedad forecolor de todas las cajas de texto. Esto se puede realizar dando clic en una parte de la forma y con el clic sostenido arrastrar el mouse hasta crear un rectángulo que encierre los objetos que deseas seleccionar, enseguida en la ventana de propiedades cambia el color (forecolor) como si lo hicieras para un objeto.

Introduce el siguiente código en el evento click del botón de comando.:
Sub Command1_Click ()
Dim i As Integer
For i = 0 To 4
text1(i).BackColor = QBColor(i)
text1(i).Text = i
Next i
End Sub
Ejecuta el programa y asegurate que entiendas lo que la aplicación esta haciendo.
Manten la misma interface que tienes arriba, pero elimina el botón de comando. Crea un panel 3D debajo de las cajas de texto (como una barra de estado). Usa la caja de herramientas para esto. Cambia el backcolor de todas las cajas de texto a gris. Programa el evento MouseMove de Text1() tal que:
a) Cuando el mouse se mueva sobre las cajas de texto, el backcolor de la caja en cuestión cambie a color rojo y las otras a gris.
b) El Panel 3D (el cual es usado como una barra de estatus) tenga un caption, el cual su valor será la caja de texto que se selecciono esto es, deberá aparecer por ejemplo,: El mouse esta sobre el Text1(3).
El encabezado para el procedimiento del evento MouseMove tiene en su lista de parámetros uno llamado index. Esto significa que VB captura el valor del indice actual (en la variable indexada) y éste valor te lo da para que puedas usarlo.
Una forma para hacer la tarea 1 es la siguiente:
Sub Text1_MouseMove (index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim i As Integer ' declara una variable para usarla como contador
For i = 0 To 4 ' poerqu hay cinco cajas
If i = index Then ' Esta es la seleccionada
text1(i).BackColor = QBColor(4) ' rojo
Else
text1(i).BackColor = QBColor(8) ' gris
End If
Next i
panel3d1.Caption = "El mouse ahora esta sobre el Text1(" & index & ")"
End Sub
Sin embargo, si introduces texto en tus cajas de texto y pruebas la aplicación más a profundidad encontrarás que la pantalla parpadea. Esto es porque el código se ejecuta siempre que el mouse se mueva, no solamente cuando entra a una caja de texto.
Modifica el programa de tal forma que cuando el cursor entre a una nueva caja de texto, esta caja se seleccione y la pcaja previa se deseleccione . Algo como esto:
Sub Text1_MouseMove (index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
' NOTA que tbmax (significa la caja de texto de máximo indice) es una constante global declarada
' en el module1.bas y tendra un valor de 4.
' prev es una variable global, declarada en module1.bas e inicializada
' en Form_Load y será tbmax+1 (esto es fuera de rango).
If index <> prev Then ' Aqui se hace un cambio de selección
text1(index).BackColor = QBColor(4) ' rojo
If prev <= tbmax Then text1(prev).BackColor = QBColor(8) ' gris
prev = index ' almacena el indice actual en prev
panel3d1.Caption = "El mouse está ahora sobre Text1(" & index & ")"
End If
End Sub
Las variables con alcance global serán declaradas en un módulo el cual es accesado por todas las partes del programa. Tal módulo es creado seleccionando Add Module del menú File.
La sintaxis es :
Global prev As Integer Global Const tbmax = 4