SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: sneider822 en Martes 9 de Junio de 2009, 13:13

Título: Como puedo hacer esto sin ir campo a campo?
Publicado por: sneider822 en Martes 9 de Junio de 2009, 13:13
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.
Título: Re: Como puedo hacer esto sin ir campo a campo?
Publicado por: m0skit0 en Martes 9 de Junio de 2009, 17:02
Sí, pero no se puede hacer tal y como lo has hecho tú. Tienes que declarar un vector de TextBox. Ponle el mismo nombre a todos los TextBox y te dirá si quieres crear una matriz de controles. Aceptas y ya los puedes recorrer como un vector cualquiera.

Saludos
Título: Re: Como puedo hacer esto sin ir campo a campo?
Publicado por: sneider822 en Martes 9 de Junio de 2009, 17:53
Agradecerte tu ayuda. A mi manera si que funciona, de hecho lo hace perfecto, pero no es la manera mas correcta de hacerlo, ya que al tener muchisimos campos aun me queda por poner uno a uno varias sentencias.

De la manera que tu dices me pierdo...si me podrías indicar como quedaría el código o en que me tengo que fijar... Un saludo y gracias
Título: Re: Como puedo hacer esto sin ir campo a campo?
Publicado por: m0skit0 en Martes 9 de Junio de 2009, 18:12
Cita de: "sneider822"
A mi manera si que funciona, de hecho lo hace perfecto, pero no es la manera mas correcta de hacerlo
Me refería a cómo quieres hacerlo, no cómo lo estás haciendo :P

Si llamamos a todos los TextBox simplemente TextB, y son digamos 20, nos quedaría algo tan sencillo como:

Código: Visual Basic
  1. Dim i as Integer
  2.  
  3. For i = 0 To 19
  4.     TextB(i) = vbNullString
  5. Next i
  6.  
que supongo es lo que quieres.

Saludos