ActiveX - Necesito su ayuda urgente!!!!

 
Vista:

Necesito su ayuda urgente!!!!

Publicado por Osdaly (2 intervenciones) el 17/08/2001 22:04:25
Estoy trabajando por vez primera en ActiveX, y lo que estoy haciendo es propocionarle eventos a un Shape. Mi problema es que necesito hacer una matriz de controles, que puedo hacer para que al momento de asignarle "0" al Index del control aparezca Index en todos los eventos.
Gracias por anticipado
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
Imágen de perfil de Alejandro Andrade

Necesito su ayuda urgente!!!!

Publicado por Alejandro Andrade (213 intervenciones) el 28/03/2023 20:45:13
¡Hola, Osdaly! Si estás trabajando con una matriz de controles en ActiveX y necesitas proporcionar eventos a cada control, pero deseas que todos los eventos usen el mismo código, independientemente del índice del control, hay algunas formas de hacer esto.

Una forma es utilizar un bucle for para recorrer todos los controles de la matriz y asignarles el mismo controlador de eventos. De esta manera, todos los controles utilizarán el mismo código cuando se dispare el evento. Por ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Form_Load()
    Dim i As Integer
    For i = 0 To UBound(ShapeArray)
        Set ShapeArray(i) = Me.Controls.Add("VB.Shape", "Shape" & i)
        ShapeArray(i).Index = i
        AddHandler ShapeArray(i).Click, AddressOf Shape_Click
    Next i
End Sub
 
Private Sub Shape_Click()
    Dim i As Integer
    Dim clickedShape As Shape
    Set clickedShape = ShapeArray(0)
    ' Aquí puedes usar la variable "clickedShape" para referirte al control que disparó el evento '
    For i = 0 To UBound(ShapeArray)
        ShapeArray(i).BackColor = clickedShape.BackColor
    Next i
End Sub

En este ejemplo, estamos creando una matriz de controles Shape y asignándoles el mismo controlador de eventos para el evento Click. El controlador de eventos Shape_Click utiliza la variable "clickedShape" para referirse al control que disparó el evento, pero como todos los controles utilizan el mismo código, siempre se refiere al primer control de la matriz.

Espero que esto te ayude a resolver tu problema. ¡Buena suerte!
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