Pregunta: | 66204 - AGREGAR LABELS EN EJECUCION EN VISUAL STUDIO 2010 |
Autor: | Screwerman Bolt |
debo crear una matriz de 3*3 de labels para un "gato"(matriz grafica). la matriz grafica debe ser creada desde el codigo o en la ejecucion. la idea es que la matriz grafica detecte el click como si fuera un boton pero debe ser un label. el problema es que solo se crea un label y los otros no aparecen en su locacion que les asigno, como si solo se creara el ultimo, o algo asi... lo que pasa es que no entiendo como fuciona como los creo en orden??????????? este es el codigo: Function crearmatriz() Dim matriz(3,3) As New Label Dim confil As Integer Dim concols As Integer = 1 For fils = 0 To 2 confil = confil + 4 For cols = 0 To 2 concols = concols + 30 matriz(fil,cols).Location = New Point(confil, concols) matriz( fil, cols).Text = "hola" Me.Controls.AddRange(New Control() {matriz(fil,cols)}) Next Next End Function obiamente la fucion se llama luego desde un button |
Respuesta: | Abel M. Montalvo |
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click crearmatriz() End Sub Private Sub crearmatriz() Dim matriz(3, 3) As Label Dim XInicial As Integer = 50 Dim YInicial As Integer = 50 Dim separacion As Integer = 100 For fils = 0 To 2 For cols = 0 To 2 matriz(fils, cols) = New Label matriz(fils, cols).Name = fils.ToString + " " + cols.ToString matriz(fils, cols).Location = New Point(XInicial + fils * separacion, YInicial + cols * separacion) matriz(fils, cols).Text = "hola" 'Agregamos un evento --> esto es extra porsi quieres saber que label precionaste AddHandler matriz(fils, cols).Click, AddressOf EventoClickLabel ' Agregamos el evento Click al label Me.Controls.Add(matriz(fils, cols)) Next Next End Sub Private Sub EventoClickLabel(ByVal sender As Object, ByVal e As System.EventArgs) ' Este es el evento que recibe al label y a Event Dim Milabel As Label = CType(sender, Label) ' sender (tipo object) es el label y lo convertimos a label para manipular sus propiedades MessageBox.Show(Milabel.Name) End Sub Te faltaria repasar matrises, creacion de controles, agregar eventos a controles, perdona mi falta de ortografia. Un saludo Abel M. |