matriz de controles

17/10/2006 - 12:44 por Tomeu | Informe spam
Buenos dias.
Estoy empezando con VB.NET y me he encontrado con un problema a la hora de
crear matrices de controles. Estoy creando una matriz sin problemas con el
siguiente bucle. Ahora bien como puedo referenciar cada boton una vez creada
la matriz. Es decir como puedo dirigirme a un control dentro de la
matriz(I,J) para saber por ejemplo el texto que hay en ella?



I = 0
While a <= 36


Dim MiControl As New TextBox
' Le asignamos un nombre al control
MiControl.Name = "hora"
' Utilizamos la propiedad Tag para almacenar ahí el valor del
control de la matriz virtual"
MiControl.Tag = I & "," & J
' Le asignamos un tamaño en el Formulario Windows
MiControl.Size = New Size(50, 20)
' Le asignamos una posición en el formulario Windows
MiControl.Location = New Point(50, 14 * (J + 1))
' Le cambiamos la propiedad Text
MiControl.Text = hora
'Propietat color font i bordes
MiControl.BorderStyle = BorderStyle.None
MiControl.BackColor = Color.Yellow
' Añadimos el control al Formulario
Me.Controls.Add(MiControl)
' Añadimos el evento Click al control creado dinámicamente
''AddHandler MiControl2.Click, AddressOf txt2Click
J = J + 1
a = a + 1
b = b + 1
If b < 6 Then
hora = hora + 10
Else
hora = hora + 50
b = 0
End If
End While


Otra prgunta estoy utilizando un metodo correcto para crear una matriz de
controles?
 

Leer las respuestas

#1 floyd303
17/10/2006 - 13:35 | Informe spam
Hola!

Porque no creas una propiedad de controles a nivel del formulario?

Public Class Form1 Inherits Form

Private MiControl() As New TextBox (36)

...

Public Sub CrearMatrizControles()
While a <= 36
MiControl(a) = New TextBox
MiControl(a).Name = "hora"
' Utilizamos la propiedad Tag para almacenar ahí el valor
del
control de la matriz virtual"
MiControl(a).Tag = I & "," & J
' Le asignamos un tamaño en el Formulario Windows
MiControl(a).Size = New Size(50, 20)
' Le asignamos una posición en el formulario Windows
MiControl(a).Location = New Point(50, 14 * (J + 1))
' Le cambiamos la propiedad Text
MiControl(a).Text = hora
'Propietat color font i bordes
MiControl(a).BorderStyle = BorderStyle.None
MiControl(a).BackColor = Color.Yellow
' Añadimos el control al Formulario
Me.Controls.Add(MiControl(a))
' Añadimos el evento Click al control creado
dinámicamente
AddHandler MiControl(a).Click, AddressOf txt2Click
J = J + 1
a = a + 1
b = b + 1
If b < 6 Then
hora = hora + 10
Else
hora = hora + 50
b = 0
End If
End While
En Sub
...

End Class

En cualquier funcion de la clase Form1 puedes acceder a la matriz:
MiControl(a)

A ver... llevo bastante sin programar en VB.NET... con lo cual he
podido meter alguna pata sintactica... pero lo importante es que pilles
la idea.

Un saludo
Roberto M. Oliva




Tomeu ha escrito:

Buenos dias.
Estoy empezando con VB.NET y me he encontrado con un problema a la hora de
crear matrices de controles. Estoy creando una matriz sin problemas con el
siguiente bucle. Ahora bien como puedo referenciar cada boton una vez creada
la matriz. Es decir como puedo dirigirme a un control dentro de la
matriz(I,J) para saber por ejemplo el texto que hay en ella?



I = 0
While a <= 36


Dim MiControl As New TextBox
' Le asignamos un nombre al control
MiControl.Name = "hora"
' Utilizamos la propiedad Tag para almacenar ahí el valor del
control de la matriz virtual"
MiControl.Tag = I & "," & J
' Le asignamos un tamaño en el Formulario Windows
MiControl.Size = New Size(50, 20)
' Le asignamos una posición en el formulario Windows
MiControl.Location = New Point(50, 14 * (J + 1))
' Le cambiamos la propiedad Text
MiControl.Text = hora
'Propietat color font i bordes
MiControl.BorderStyle = BorderStyle.None
MiControl.BackColor = Color.Yellow
' Añadimos el control al Formulario
Me.Controls.Add(MiControl)
' Añadimos el evento Click al control creado dinámicamente
''AddHandler MiControl2.Click, AddressOf txt2Click
J = J + 1
a = a + 1
b = b + 1
If b < 6 Then
hora = hora + 10
Else
hora = hora + 50
b = 0
End If
End While


Otra prgunta estoy utilizando un metodo correcto para crear una matriz de
controles?

Preguntas similares