Visual Basic - Error al crear matriz

Life is soft - evento anual de software empresarial
 
Vista:
Imágen de perfil de Cris
Val: 405
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Error al crear matriz

Publicado por Cris (27 intervenciones) el 24/08/2019 14:33:45
Buenas tardes,

Estoy tratando de crear una matriz de botones, pero no lo consigo. ¿Qué parte del código no es correcto?

Parto de un botón creado a código.

El código es:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub Label1_Click()
 
'Creo un botón cmdmiboton
 
    Set cmdmiboton = Controls.Add("VB.commandbutton", "Button")
       With cmdmiboton
         .Visible = True
         .Width = 3000
         .Caption = "cmdmiboton"
         .Top = 3000
         .Left = 1000
       End With
 
'-------------
 
'Intento crear una matriz de 7 botones partiendo del que he creado
'Error: Número de argumentos erróneos
 
      For i = 0 To 7
         Load cmdmiboton(i)
      Next i
 
End Sub

Gracias de antemano.

Un saludo,
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
sin imagen de perfil
Val: 119
Ha disminuido 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Error al crear matriz

Publicado por Christian (713 intervenciones) el 30/08/2019 04:23:59
Al boton que tenes en el formulario cambiale la propiedad index a 0. Fijate que el For empieza en 1

y luego hace esto ...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub cmdmiboton_Click(Index As Integer)
    MsgBox ("Soy el boton" + CStr(Index))
End Sub
 
Private Sub Form_Load()
 
      For i = 1 To 7
         Load cmdmiboton(i)
         cmdmiboton(i).Visible = True
         cmdmiboton(i).Caption = "Boton" + CStr(i)
         cmdmiboton(i).Top = cmdmiboton(i - 1).Top + 500
      Next i
 
End Sub

Saludos.-
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
Imágen de perfil de Cris
Val: 405
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Error al crear matriz

Publicado por Cris (27 intervenciones) el 30/08/2019 06:45:28
Gracias por responder. Llevo días haciendo pruebas y no lo entiendo.

He probado a hacer tal cual, lo que indicas y no funciona, Creo que el problema es que no parto de un botón real en el Form.

El primero, lo creo con código y no sé indicarle, también con código, que tenga Index 0.

Con esto creo un botón y lo crea bien pero sin Index:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Set cmdmiboton = Controls.Add("VB.commandbutton", "Button")
       With cmdmiboton
         .Visible = True
         .Width = 1000
         .Caption = "Boton"
         .Top = 1000
         .Left = 1000
       End With
 
 
' El fallo viene después, cuando intento que sean más botones.
 
For i = 1 To 7
Load cmdmiboton(i)
cmdmiboton(i).Visible = True
cmdmiboton(i).Caption = "Boton" + CStr(i)
cmdmiboton(i).Top = cmdmiboton(i - 1).Top + 500
Next i


Subo fichero de ejemplo.

Gracias de nuevo.

Un saludo
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
Imágen de perfil de Cris
Val: 405
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Error al crear matriz

Publicado por Cris (27 intervenciones) el 30/08/2019 07:08:16
No sé borrar el fichero que he subido, así que vuelvo a subir el código, pero corregido.
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
Imágen de perfil de Cris
Val: 405
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Error al crear matriz

Publicado por Cris (27 intervenciones) el 30/08/2019 07:30:25
Leyendo todo el hilo, tengo que pedirte disculpas. Tu código, sí que funciona. Sólo que parte de un botón en el Form. Me expresé mal. Lo siento.
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