Resumen: Entrega nº19 del curso Aprender a programar en Visual Basic desde cero.
Codificación aprenderaprogramar.com: CU00320A

 

 

MATRICES O ARRAYS DE CONTROLES

Ya hemos visto la utilidad del uso de arrays de variables. Por otro lado estamos viendo que los controles son objetos prefabricados, con algunas propiedades que recuerdan a las variables. Por ejemplo, el contenido de un TextBox "recuerda" al contenido de una variable. Siendo esto así, se comprenderá que igual que es interesante trabajar con arrays de variables puede ser interesante trabajar con arrays de controles.

Visual Basic

CREAR UN ARRAY DE CONTROLES CON LAS VERSIONES MENOS RECIENTES DE VISUAL BASIC

Para crear un array de controles con las versiones menos recientes de Visual Basic haz lo siguiente:

· En primer lugar, crea el control deseado y mantenlo con el nombre que por defecto le ponga Visual Basic. Por ejemplo creamos un TextBox que se llamará Text1.

· A continuación, pulsa sobre el control y mediante Ctrl+C ó a través del menú Edición - Copiar, copia el control en el portapapeles.

· Mediante Ctrl+V ó a través del menú Edición - Pegar, pega el control sobre el formulario. Te aparecerá un mensaje del tipo: "Ya existe un control llamado Text1. ¿Desea crear una matriz de controles?" Este mensaje no te aparecerá en las versiones más recientes de Visual Basic. Explicaremos cómo proceder en el siguiente apartado.

· Responde sí y comprobarás que aparece un control sobre el formulario cuyo nombre es Text1(1), mientras que el control que ya existía anteriormente ha pasado a llamarse Text1(0).

· Si repites pegar, te seguirán apareciendo controles con nombre Text1(2), Text1(3), Text1(4), etc.

 


Esta posibilidad nos permite crear formularios del tipo:

array de controles

 

En este formulario hemos definido 6 Labels denominados Label1(0), Label1(1), Label1(2), Label1(3), Label1(4) y Label1(5) así como 6 TextBox denominados Text1(0), Text1(1), Text1(2), Text1(3), Text1(4) y Text1(5). También podríamos haberlos nombrado simplemente como Label1, Label2, Label3, Label4, Label5, Label6, etc. eligiendo en el momento de pegar no crear una matriz de controles. Pero al igual que ocurre con las variables, resultará mucho más cómodo de cara al tratamiento de datos el nombrarlas como una matriz de controles.

Podemos prescindir del control de localizador cero si así lo deseamos, simplemente borrándolo. De este modo en vez de una serie de seis números tipo 0, 1, 2, 3, 4, 5 nos quedaríamos con 1, 2, 3, 4, 5, 6.

 

 

CREAR UN ARRAY DE CONTROLES CON LAS VERSIONES MÁS RECIENTES DE VISUAL BASIC

Para crear un array de controles con las versiones más recientes de Visual Basic ha de recurrirse a usar código, lo cual resulta bastante más complicado que hacerlo de forma gráfica. Aquí vamos a poner la definición del código que habría que emplear para generar un formulario como el visto anteriormente, con 6 Labels y 6 TextBoxes. En este momento del curso no debemos entender este código por lo que no te entretengas en su estudio. Cuando hayamos avanzado un poco más y visto las instrucciones relativas a bucles, vuelve a este punto y repasa este código para comprobar que comprendes lo que hace. Nota: la referencia Me es hacia el propio formulario principal que estamos usando.

REM Curso Visual Basic aprenderaprogramar.com

Public Class Form1
    Dim LabelArray(6) As Label
    Dim TextBoxArray(6) As TextBox

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim i As Integer
        For i = 1 To 6
            LabelArray(i) = New Label : TextBoxArray(i) = New TextBox
            LabelArray(i).Text = "Dato " & i
            LabelArray(i).Width = 120 : TextBoxArray(i).Width = 100
            LabelArray(i).Height = 30 : TextBoxArray(i).Height = 30
            TextBoxArray(i).AutoSize = False
            LabelArray(i).TextAlign = ContentAlignment.MiddleCenter
            LabelArray(i).BorderStyle = BorderStyle.FixedSingle
            LabelArray(i).Font = New Font("Arial", 10, FontStyle.Bold)
            LabelArray(i).Location = New Point(100, i * 50)
            TextBoxArray(i).Location = New Point(260, i * 50)
            Me.Controls.Add(LabelArray(i)) : Me.Controls.Add(TextBoxArray(i))
        Next
    End Sub
End Class

 

 

 

 

 

 

Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link:  Ver curso completo.
 
Para  hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.

Descargar archivo: