Public Class Form1
Dim i As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
For i = 0 To 48
Me.TextBox(i).Text = "hola"
Next
End Sub
End Class
Como te dice elNapster si ya tienes los controles metidos en un array te debería funcionar. En vb2005 se han eliminado los arrays ya que chocan frontalmente con el modelo de objetos, no obstante por compatibilidad hacia atrás se incluye y por tanto es posible, como describirlo es un poco engorroso te animo a que tu mismo lo veas, crea un proyecto en VB.60 añade al formulario un array de controles textbox guarda el proyecto y cuierra vb6 ahora abre el proyecto en vb2005 te pedirá ai deseas 'actualizar' el proyecto, respondes que si y listo como sólo tenías esos objetos sin nada más ni código te será fácil ver como se hace para ello tienes que abrir el 'diseñador' del formulario (dale a mostrar todos los archivos para que lo encuentres fácilmente)...
Hay aparte otros 2 métodos igual de sencillos y más asequible de explicar en 4 líneas de código..
El 1º consiste en chequear en todos los controles del formulario si es el texbox deseado... de entrada si tienes pongamos 100 textbox usando la propiedad NAME a los que interese llámalos semejante por ejemplo TextCuenta1, textCuenta2... Textcuenta25... y a otros textbox que no entren en esa línea llámales de forma distinta.. el código sería algo como:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
msgbox " Se hallaron " & Escribe_Textbox & " textbox con el nombre 'textcuenta'. "
End sub
private function Escribe_Textbox() as integer
dim x as integer
for each c as control in Controls ' recorre todos los controles en el formulario
if c is TextBox then ' filtramos los que no son textbox
if instr(c.name.tolower,"textcuenta")> 0 then ' filtramos los textbox cuyo patrón (el nombre) no nos interesa, esto debe meditarse antes, o usar otra propiedad.....
c.text="Hola cocacola" ' hacemos lo que querías....
x +=1
end if
end if
next
return x
end function
El 2º método es muy parecido a éste, y su cometido es evitar recorrer todos los controles del formulario CADA VEZ que deseamos rescribirlos, esto es si tenemos 25 textbox y hay 30 controles en el formulario pués no tiene mucha importancia, pero si tenemos 8 textbox y hay 300 controles en el formulario, pués implica pérdida de tiempo. Para ello lo que hacemos es buscarlos una sóla vez y meterlos en un 'saco', luego cuando queramos escribirlos, vamos al saco y de uno en uno los sacmos y escribimos.... el código sería más o menos
' estamod dentro del formulario...
dim TB as new arraylist
' dentro del evento load del formulario
call Ensacar_Textbox ' el código se mete en una rutina por si necesitamos actualizar la lista que tenemos dentro del saco, eso ocurrirá si eliminamos o deseamos añadir nuevos objetos...
' esta rutina es casi idéntica a la mostrada en el ejemplo anterior,
private sub Ensacar_Textbox() dim x as integer
for each c as control in Controls ' recorre todos los controles en el formulario
if c is TextBox then ' filtramos los que no son textbox
if instr(c.name.tolower,"textcuenta")> 0 then ' filtramos los textbox cuyo patrón (el nombre) no nos interesa, esto debe meditarse antes, o usar otra propiedad.....
TB.add( c) ' abrimos el saco y lo metemos ....
end if
end if
next
end sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
call Escribir_Texto("Hola cocacola")
end sub
private sub Escribir_Texto(cadena as string)
dim nTb as new textbox
for k as integer= 0 to TB.count -1 ' contamos los que tenemos en el saco.... esos mismos son los que vamos a 'escribir'
nTb=TB.item(k)
ntb.text= cadena
next
end sub
listo... ya sólo te queda meter un montón de controles textbbox de nombre (textcuenta, o el que quieras pero adecúalo en el código) otros texbos de otro nombre diferente y otros objetos (botones, label, frame, picture...) para comprobar que funciona perfectamente.
Saludos....