Visual Basic - Colocar controles

Life is soft - evento anual de software empresarial
   
Vista:

Colocar controles

Publicado por Cris (33 intervenciones) el 27/03/2015 21:56:48
Hola,

Estoy tratando de colocar unos controles en filas y columnas y lo consigo siempre y cuando sean el mismo número de filas que de columnas.

En cuanto no es así, el código me da error, y no sé dónde falla.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
'COLOCA LOS controles (3 columnas x 4 filas)
'1)Primera fila (3 columnas)
 
Dim i As Integer
Dim n As Integer
Dim p As Integer
 
Left = Label2(0).Left + Label2(0).Width
For i = 1 To 2
Label2(i).Top = Label2(0).Top
Label2(i).Left = Left
Label2(i).Visible = True
Left = Left + Label2(0).Width
Next i
 
'Hasta aquí, bien
'El problema surge con las siguientes filas, da error con los index
 
'2)Siguientes filas (3 filas más)
n = 0
p = 4
Top = Label2(0).Top + Label2(0).Height
While n < 3
Left = Label2(0).Left
For i = (0 + p) To (3 + p)
Label2(i).Left = Left
Label2(i).Top = Top
Label2(i).Visible = True
Left = Left + Label2(0).Width
Next i
Top = Top + Label2(0).Height
n = n + 1
p = p + 4
Wend

Ojala podáis ayudarme.

Gracias de antemano.

Subo un pequeño ejemplo por si no he sabido explicar bien el problema.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Colocar controles

Publicado por Cris (33 intervenciones) el 28/03/2015 10:47:57
Creo que ya he dado con ello.
Pongo el código por si le sirve a alguien.
Un saludo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
'COLOCA LOS controles (3 columnas x 4 filas)
'1)Primera fila (3 columnas)
 
Dim i As Integer
Dim n As Integer
Dim p As Integer
 
Left = Label2(0).Left + Label2(0).Width
For i = 1 To 2
Label2(i).Top = Label2(0).Top
Label2(i).Left = Left
Label2(i).Visible = True
Left = Left + Label2(0).Width
Next i
 
 
'2)Siguientes filas (3 filas más)
n = 0
p = 3
Top = Label2(0).Top + Label2(0).Height
While n < 3
Left = Label2(0).Left
For i = (0 + p) To (2 + p)
Label2(i).Left = Left
Label2(i).Top = Top
Label2(i).Visible = True
Left = Left + Label2(0).Width
Next i
Top = Top + Label2(0).Height
n = n + 1
p = p + 3
Wend
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de xve

Colocar controles

Publicado por xve (178 intervenciones) el 28/03/2015 21:55:54
Hola Cris, gracias por compartirlo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Colocar controles

Publicado por Cris (33 intervenciones) el 28/03/2015 22:08:28
Un placer. Lástima que sé muy poco de Visual.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar