Visual Basic para Aplicaciones - problema para agrupar objet(matrices de controles)

Life is soft - evento anual de software empresarial
 
Vista:

problema para agrupar objet(matrices de controles)

Publicado por Paranoid (1 intervención) el 20/07/2004 07:24:11
Dado que con vb con aplicaciones, no se como crear (creo que no se puede) un array de controles directamente cuando los pones en el formulario (del tipo opt1(0),opt1(1)) con sus index, etc,etc,etc)

Estoy intentando esto:
Private Sub UserForm_Initialize()

Dim Ports2_Array(24) As control
Dim Active_Port As Control
Dim index As Integer
index = 0
For Each Active_Port In UserForm2.Controls
If Left(Active_Port.Name, 3) = "chk" Then
Ports2_Array(index) = Active_Port
index = index + 1
End If
Next Active_Port
End Sub

Pero me falla todo el rato... alguien sabe como puedo hacerlo???El motivo es simple... poder recorrelos todos rapidamente con un for, igual que en vb 6.0 pero no se como hacerlo, estoy desesperado, y me niego a hacerlo boton a boton.

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

RE:problema para agrupar objet(matrices de control

Publicado por Cristian (27 intervenciones) el 22/07/2004 17:19:53
Hola

Con el siguiente ejemplo puedes recorrer todos los controles del formulario y revisar si conincide con el control que necesitas trabajar, en mi ejemplo los Text. Para probarlo Coloca en un formulario varios TextBox y un CommandButton y el siguiente codigo

Private Sub CommandButton1_Click()
Dim Textos As Object
For Each Textos In Me.Controls
If TypeName(Textos) = "TextBox" Then
Textos.Value = "HolaMundo"
End If
Next
End Sub

Que hace el codigo anterios???
Recorre todos los controles del Forulario y compara el nombre de la clase del control con "TexttBox" si coinciden es porque en el formulario se encuentra un control de la clase "TextBox" entonces escribe un mensaje "Hola Mundo"

El codigo anterior te srvira para signar valores a propiedes o realizar comparaciones

Private Sub CommandButton1_Click()
Dim Textos As Object
For Each Textos In Me.Controls
If TypeName(Textos) = "TextBox" Then
If Textos.Text="Colombia" then
msgbox "Estas en Colombia"
Else
msgbox "No estas en Colombia"
End If
End if
Next
End Sub

Espero todo esto sea lo que necesites

Saludos

Visita www.theemulator.tk (Emuladores y Roms)
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