• Sábado 13 de Abril de 2024, 21:06

Autor Tema:  Duda for Next  (Leído 1902 veces)

Hanzo

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Duda for Next
« en: Sábado 4 de Junio de 2011, 05:57 »
0
Saludos muchachos, tengo 15 textbox con nombres desde text1 a text15 respectivamente, asignando limite de longitud  "Text1.MaxLength = 10".
mi duda era si puedo asignar un limite de longitud para los 15 textbox mediante for next, Gracias de antemano  :good:

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Duda for Next
« Respuesta #1 en: Lunes 6 de Junio de 2011, 00:55 »
0
Claro que puedes hacerlo.

Pero para hacerlo más eficiente, conviene que los textbox formen una colección...
Para hacer esto elimina todos los textbox excepto el 1º. Luego copia ese y pégalo en el formulario tantas veces como necesites, la 1ª vez te dirá que si quieres crear una matriz de controles, di que si (en realidad es una colección no una matriz, pero es un detalle sin importancia).

Luego podrás recorrer el bucle porque pueden ser accedidos a través del índice que los relacciona todos juntos.

Código: Visual Basic
  1.  
  2.  
  3. dim k as long
  4.  
  5. for k= 0 to 14
  6.     text1(k).maxlenght=10
  7. next
  8.  
  9.  
Fíjate que al crear una matriz, existe una propiedad índice que entonces toma un valor que identifica univocamente a cada control en la matriz.

Si tienes que asignar más propiedades que sólo maxlenght, podrás hacerlo cuando lo necesites. Ten en cuenta que al copiar un control y pegarlo permitiendo la matriz, la copia mantiene el valor actual de las propiedades que tenía el copiado, luego en diseño antes de copiar controles introduce las propiedades que quieres que tengan todos en común, te ahorrará tener que introducirlo manualmente uno a uno luego...

Si no crear la matriz de controles, todavía podrás usar un bucle for, pero para ello tendrá que ser del tipo 'For Each', preguntando al contenedor por los controles textbox y descartando a los que no deba aplicarse. Pero esto supone recorrer todos los controles que tiene el formulario cada vez, por lo que es menos eficiente... Aparte de cambiar la propiedad tienes que verificar que ese control es un textbox y que además es uno sobre los que quieres  operar...
«Ma non troppo»
----> ModoVacaciones = False<----

Hanzo

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Duda for Next
« Respuesta #2 en: Martes 7 de Junio de 2011, 23:58 »
0
Cita de: "Nebire"
Claro que puedes hacerlo.

Pero para hacerlo más eficiente, conviene que los textbox formen una colección...
Para hacer esto elimina todos los textbox excepto el 1º. Luego copia ese y pégalo en el formulario tantas veces como necesites, la 1ª vez te dirá que si quieres crear una matriz de controles, di que si (en realidad es una colección no una matriz, pero es un detalle sin importancia).

Luego podrás recorrer el bucle porque pueden ser accedidos a través del índice que los relacciona todos juntos.

Código: Visual Basic
  1.  
  2.  
  3. dim k as long
  4.  
  5. for k= 0 to 14
  6.     text1(k).maxlenght=10
  7. next
  8.  
  9.  
Fíjate que al crear una matriz, existe una propiedad índice que entonces toma un valor que identifica univocamente a cada control en la matriz.

Si tienes que asignar más propiedades que sólo maxlenght, podrás hacerlo cuando lo necesites. Ten en cuenta que al copiar un control y pegarlo permitiendo la matriz, la copia mantiene el valor actual de las propiedades que tenía el copiado, luego en diseño antes de copiar controles introduce las propiedades que quieres que tengan todos en común, te ahorrará tener que introducirlo manualmente uno a uno luego...

Si no crear la matriz de controles, todavía podrás usar un bucle for, pero para ello tendrá que ser del tipo 'For Each', preguntando al contenedor por los controles textbox y descartando a los que no deba aplicarse. Pero esto supone recorrer todos los controles que tiene el formulario cada vez, por lo que es menos eficiente... Aparte de cambiar la propiedad tienes que verificar que ese control es un textbox y que además es uno sobre los que quieres  operar...
gracias Nebire por la aclaracion  :good: