Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Como puedo hacer esto sin ir campo a campo?

Estas en el tema de Como puedo hacer esto sin ir campo a campo? en el foro de Visual Basic clásico en Foros del Web. Buenas. Estoy haciendo una aplicación en Visual Basic 6.3. Resulta que tengo un formulario con varios campos y algunos de éstos campos se despliegan para ...
  #1 (permalink)  
Antiguo 09/06/2009, 05:08
 
Fecha de Ingreso: septiembre-2005
Mensajes: 379
Antigüedad: 18 años, 8 meses
Puntos: 0
Como puedo hacer esto sin ir campo a campo?

Buenas. Estoy haciendo una aplicación en Visual Basic 6.3. Resulta que tengo un formulario con varios campos y algunos de éstos campos se despliegan para poder seleccionar una opción concreta. Pues bien...a la hora de referirme a un campo tengo que hacerlo manualmente uno a uno...y es un poco pesado.

Me gustaría saber si hay algun método, comando , bucle o lo que sea que me haga esto que muestro pero sin ir campo a campo.

Public Sub BORRARTEXTBOOXCAPAS()

If INDICE = ComboBox3.TabIndex Or INDICE = ComboBox13.TabIndex Or INDICE = ComboBox23.TabIndex Then

TextBox16.Value = ""
TextBox17.Value = ""
TextBox18.Value = ""
TextBox19.Value = ""
TextBox20.Value = ""
TextBox21.Value = ""
TextBox22.Value = ""
End If

Como véis tengo que ir campo a campo uno a uno, y se hace bastante pesado. Me gustaría saber si existe algo para decirle que por ejemplo del 16 al 22 me ponga lo que yo quiera.

Muchas gracias por todo.
  #2 (permalink)  
Antiguo 09/06/2009, 06:01
 
Fecha de Ingreso: junio-2008
Ubicación: Punta Alta, Argentina
Mensajes: 82
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Como puedo hacer esto sin ir campo a campo?

no probaste indexandolos? despues hacer correr un for para asignar...

Por Ej

For i=16 to 22
TextBox(i).Value=""
next


Para indexarlos tenes ke poner a todos tus textbox que quieras agrupar cnel mismo nombre y creo ke automaticamente VB6 le asigna un numero, te vas a dar cuenta porque en el nombre del control va a aparecer un par de parentesis y un nro Ej TextBox(1)


OJO!! esto de indexar no tiene nada que ver con el TABINDEX.

Tambien recomiendo que uses nombres que sean mas faciles de identificar que funcion cumple en el form..
Ej, si queremos colocar 3 textbox para la carga de nombre apellido y edad y un commandbutton para enviar los nombres quedarian asi

TbNombre - TbApellido - TbEdad - CdmEnviar

solamente es prolijidad.!!
  #3 (permalink)  
Antiguo 09/06/2009, 15:56
 
Fecha de Ingreso: octubre-2008
Mensajes: 44
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Como puedo hacer esto sin ir campo a campo?

O tambien meter todos los TextBox en contenedor, por ejemplo, en un GroupBox y crear una función:
Function ValidarCtrl(ByVal Contenedor As GroupBox) As Boolean
Dim Ctrl As Control
For Each Ctrl In Contenedor.Controls
If Ctrl.Text = Nothing Then
MsgBox("Faltan Datos")
Ctrl.Focus()
ValidarCtrl = False
Exit Function
End If
Next Ctrl
ValidarCtrl = True
End Function
y en tu form:
If ValidarCtrl(TuContenedorGBox) = False Then Exit Sub
  #4 (permalink)  
Antiguo 09/06/2009, 16:09
 
Fecha de Ingreso: octubre-2008
Mensajes: 44
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Como puedo hacer esto sin ir campo a campo?

Perdón, no era así, ahi va el correcto:
Dim Ctrl As Control
For Each Ctrl In Contenedor.Controls
If TypeOf Ctrl Is TextBox Then
Ctrl.Text = Nothing
End If
Next Ctrl

Espero funcione.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:24.