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?

Preguntas similare

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?
Respuesta Responder a este mensaje
#2 Tomeu
17/10/2006 - 15:23 | Informe spam
Muchas gracias por la ayuda. Finalmente esto quedo así por si ha alguien le
puede servir de ayuda

Public Class Form1
Private MiControl(15, 38) As TextBox
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim J As Byte



Dim I As Byte
Dim a, b As Byte

'Pintam hores mati
Dim hora As Integer
hora = 900
I = 1
J = 2


While a <= 36

MiControl(I, J) = New TextBox
MiControl(I, J).Name = "hora"
' Utilizamos la propiedad Tag para almacenar ahí el valor
del()control de la matriz virtual"
MiControl(I, J).Tag = I & "," & J
' Le asignamos un tamaño en el Formulario Windows
MiControl(I, J).Size = New Size(50, 20)
' Le asignamos una posición en el formulario Windows
MiControl(I, J).Location = New Point(50, 14 * (J + 1))
' Le cambiamos la propiedad Text
MiControl(I, J).Text = hora
'Propietat color font i bordes
MiControl(I, J).BorderStyle = BorderStyle.None
MiControl(I, J).BackColor = Color.Yellow
' Añadimos el control al Formulario
Me.Controls.Add(MiControl(I, J))
' Añadimos el evento Click al control creado dinámicamente()
AddHandler MiControl(I, J).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

End Sub


Public Sub txt2Click(ByVal Sender As Object, ByVal e As System.EventArgs)
' Mostramos un Mensaje
MessageBox.Show(Me.MiControl(1, 5).ToString())
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click

MessageBox.Show(Me.MiControl(1, 2).Text) 'Referencia a objeto no
esablecida como instancia a un objeto
End Sub
End Class

"" wrote:


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?


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida