for each

13/07/2006 - 16:33 por Fernando | Informe spam
Hola grupo, gracias antes que nada. Ahora la pregunta ¿Existe la forma
de ordenar los controles para que me los muestre en el for each?
Ejemplo:
for each ctl in mipanel.controls
ctl.tag = "algo"
next

¿Como puedo decirle al for each que los botones de mi panel que se
llaman "btn1" , "btn2", etc , me los ordene en orden numérico? Espero
se entienda la pregunta.Gracias

Fernando

Preguntas similare

Leer las respuestas

#1 René Pacios
13/07/2006 - 17:13 | Informe spam
Hola Fernando, no se es esto lo que quieres hacer pero bueno, dentro del for
each puedes comprobar cual es el tipo de control al que estás accediendo. Me
esplico mejor con un ejemplo

''''''Puede que tenga algún fallo de sintaxis porque el outlook no te ayuda
como el intelellense... de VS

For each c as control in panel.controls

if typeof(c) is system.form.controls.button then '''''[comprobamos si el
control es un botón]

''''''[esto no tiene porque ir así pero queda más
claro porque de esta forma al poner el punto te saldrán las propiedades del
botón si utilizas visual studio]'''''
ctype(c,button).Text="Lo que sea"
ctype(c,button).Name="Botoncito"
etc.

Incluso podrías cambierle el manejador

AddHandler ctype(c,button).Click, AddressOf NombreFuncion


end if

Next


Bueno espero que te sirva de algo
Salu2


"Fernando" escribió en el mensaje
news:
Hola grupo, gracias antes que nada. Ahora la pregunta ¿Existe la forma de
ordenar los controles para que me los muestre en el for each?
Ejemplo:
for each ctl in mipanel.controls
ctl.tag = "algo" next

¿Como puedo decirle al for each que los botones de mi panel que se llaman
"btn1" , "btn2", etc , me los ordene en orden numérico? Espero se entienda
la pregunta.Gracias

Fernando
Respuesta Responder a este mensaje
#2 Fernando
13/07/2006 - 17:25 | Informe spam
René Pacios escribió:
Hola Fernando, no se es esto lo que quieres hacer pero bueno, dentro del for
each puedes comprobar cual es el tipo de control al que estás accediendo. Me
esplico mejor con un ejemplo

''''''Puede que tenga algún fallo de sintaxis porque el outlook no te ayuda
como el intelellense... de VS

For each c as control in panel.controls

if typeof(c) is system.form.controls.button then '''''[comprobamos si el
control es un botón]

''''''[esto no tiene porque ir así pero queda más
claro porque de esta forma al poner el punto te saldrán las propiedades del
botón si utilizas visual studio]'''''
ctype(c,button).Text="Lo que sea"
ctype(c,button).Name="Botoncito"
etc.

Incluso podrías cambierle el manejador

AddHandler ctype(c,button).Click, AddressOf NombreFuncion


end if

Next


Bueno espero que te sirva de algo
Salu2


"Fernando" escribió en el mensaje
news:
Hola grupo, gracias antes que nada. Ahora la pregunta ¿Existe la forma de
ordenar los controles para que me los muestre en el for each?
Ejemplo:
for each ctl in mipanel.controls
ctl.tag = "algo" next

¿Como puedo decirle al for each que los botones de mi panel que se llaman
"btn1" , "btn2", etc , me los ordene en orden numérico? Espero se entienda
la pregunta.Gracias

Fernando






Hola Rene, gracias. Te cuento, resulta que tengo unos veinte botones
para cargarle imagenes segun existencia, es decir, si tengo cuatro
imagenes , se cargarán en cuatro botones ya asi sucesivamente. Lo que
ocurre es que las imagenes se cargan el los cuatro ultimos botones de la
serie de veinte. Yo quiero que se carguen en los cuatro primeros y si
fueran cinco imagenes , que se carguen en los primeros cinco botones. El
caso es que se cargan en los cuatro ultimos botones de la serie, y no se
porque. Bueno espero me entiendas. Gracias

Fernando
Respuesta Responder a este mensaje
#3 Roberto
14/07/2006 - 09:52 | Informe spam
Te puedes guardar los nombres de los controles en un array y llamarlos
secuencialmente.

Dim ButtonArray() as Button {Boton0,Boton1,Boton2,Boton3}

for i=0 to 4
ButtonArray(0).Text = i
Next

"Fernando" wrote:

René Pacios escribió:
> Hola Fernando, no se es esto lo que quieres hacer pero bueno, dentro del for
> each puedes comprobar cual es el tipo de control al que estás accediendo. Me
> esplico mejor con un ejemplo
>
> ''''''Puede que tenga algún fallo de sintaxis porque el outlook no te ayuda
> como el intelellense... de VS
>
> For each c as control in panel.controls
>
> if typeof(c) is system.form.controls.button then '''''[comprobamos si el
> control es un botón]
>
> ''''''[esto no tiene porque ir así pero queda más
> claro porque de esta forma al poner el punto te saldrán las propiedades del
> botón si utilizas visual studio]'''''
> ctype(c,button).Text="Lo que sea"
> ctype(c,button).Name="Botoncito"
> etc.
>
> Incluso podrías cambierle el manejador
>
> AddHandler ctype(c,button).Click, AddressOf NombreFuncion
>
>
> end if
>
> Next
>
>
> Bueno espero que te sirva de algo
> Salu2
>
>
> "Fernando" escribió en el mensaje
> news:
>> Hola grupo, gracias antes que nada. Ahora la pregunta ¿Existe la forma de
>> ordenar los controles para que me los muestre en el for each?
>> Ejemplo:
>> for each ctl in mipanel.controls
>> ctl.tag = "algo" next
>>
>> ¿Como puedo decirle al for each que los botones de mi panel que se llaman
>> "btn1" , "btn2", etc , me los ordene en orden numérico? Espero se entienda
>> la pregunta.Gracias
>>
>> Fernando
>
>
Hola Rene, gracias. Te cuento, resulta que tengo unos veinte botones
para cargarle imagenes segun existencia, es decir, si tengo cuatro
imagenes , se cargarán en cuatro botones ya asi sucesivamente. Lo que
ocurre es que las imagenes se cargan el los cuatro ultimos botones de la
serie de veinte. Yo quiero que se carguen en los cuatro primeros y si
fueran cinco imagenes , que se carguen en los primeros cinco botones. El
caso es que se cargan en los cuatro ultimos botones de la serie, y no se
porque. Bueno espero me entiendas. Gracias

Fernando

Respuesta Responder a este mensaje
#4 René Pacios
14/07/2006 - 09:53 | Informe spam
Hola Fernando

Bueno si sabes el númro de imagenes que tienes, o lo puedes averiguar
mediante código, siempre puedes hacer un Exit For. Es decir si no no me
equivoco, el for each va recorriendo los controles de izquierda a derecha y
de arriba abajo. Entonces dentro del For each metes un contador tal como:
i=0
For each
i=i+1
if i=numeroImagenes then
exit For
end if
next

Si no consigues llevarla por el orden que necesitas, y tienes los botones
nuemrados, siempre podrías agregar los botones a un arralist, o simplemente
los nombres, para saber cuales son a los que le quieres insertar la image.
Esto ultimo puede ser un poco tedioso. Si no te funciona la forma de arriba
porque no te coge bien el orden, intenta esto o ultimo, aunque serán más
lineas de codigo. Y bueno para cualquier cosa.

Espero que te sirva
Salu2
"Fernando" escribió en el mensaje
news:
René Pacios escribió:
Hola Fernando, no se es esto lo que quieres hacer pero bueno, dentro del
for each puedes comprobar cual es el tipo de control al que estás
accediendo. Me esplico mejor con un ejemplo

''''''Puede que tenga algún fallo de sintaxis porque el outlook no te
ayuda como el intelellense... de VS

For each c as control in panel.controls

if typeof(c) is system.form.controls.button then '''''[comprobamos si
el control es un botón]

''''''[esto no tiene porque ir así pero queda
más claro porque de esta forma al poner el punto te saldrán las
propiedades del botón si utilizas visual studio]'''''
ctype(c,button).Text="Lo que sea"
ctype(c,button).Name="Botoncito"
etc.

Incluso podrías cambierle el manejador

AddHandler ctype(c,button).Click, AddressOf NombreFuncion


end if

Next


Bueno espero que te sirva de algo
Salu2


"Fernando" escribió en el mensaje
news:
Hola grupo, gracias antes que nada. Ahora la pregunta ¿Existe la forma
de ordenar los controles para que me los muestre en el for each?
Ejemplo:
for each ctl in mipanel.controls
ctl.tag = "algo" next

¿Como puedo decirle al for each que los botones de mi panel que se
llaman "btn1" , "btn2", etc , me los ordene en orden numérico? Espero se
entienda la pregunta.Gracias

Fernando






Hola Rene, gracias. Te cuento, resulta que tengo unos veinte botones para
cargarle imagenes segun existencia, es decir, si tengo cuatro imagenes ,
se cargarán en cuatro botones ya asi sucesivamente. Lo que ocurre es que
las imagenes se cargan el los cuatro ultimos botones de la serie de
veinte. Yo quiero que se carguen en los cuatro primeros y si fueran cinco
imagenes , que se carguen en los primeros cinco botones. El caso es que se
cargan en los cuatro ultimos botones de la serie, y no se porque. Bueno
espero me entiendas. Gracias

Fernando
Respuesta Responder a este mensaje
#5 Fernando
14/07/2006 - 13:04 | Informe spam
Roberto escribió:
Te puedes guardar los nombres de los controles en un array y llamarlos
secuencialmente.

Dim ButtonArray() as Button {Boton0,Boton1,Boton2,Boton3}

for i=0 to 4
ButtonArray(0).Text = i
Next

"Fernando" wrote:

René Pacios escribió:
Hola Fernando, no se es esto lo que quieres hacer pero bueno, dentro del for
each puedes comprobar cual es el tipo de control al que estás accediendo. Me
esplico mejor con un ejemplo

''''''Puede que tenga algún fallo de sintaxis porque el outlook no te ayuda
como el intelellense... de VS

For each c as control in panel.controls

if typeof(c) is system.form.controls.button then '''''[comprobamos si el
control es un botón]

''''''[esto no tiene porque ir así pero queda más
claro porque de esta forma al poner el punto te saldrán las propiedades del
botón si utilizas visual studio]'''''
ctype(c,button).Text="Lo que sea"
ctype(c,button).Name="Botoncito"
etc.

Incluso podrías cambierle el manejador

AddHandler ctype(c,button).Click, AddressOf NombreFuncion


end if

Next


Bueno espero que te sirva de algo
Salu2


"Fernando" escribió en el mensaje
news:
Hola grupo, gracias antes que nada. Ahora la pregunta ¿Existe la forma de
ordenar los controles para que me los muestre en el for each?
Ejemplo:
for each ctl in mipanel.controls
ctl.tag = "algo" next

¿Como puedo decirle al for each que los botones de mi panel que se llaman
"btn1" , "btn2", etc , me los ordene en orden numérico? Espero se entienda
la pregunta.Gracias

Fernando





Hola Rene, gracias. Te cuento, resulta que tengo unos veinte botones
para cargarle imagenes segun existencia, es decir, si tengo cuatro
imagenes , se cargarán en cuatro botones ya asi sucesivamente. Lo que
ocurre es que las imagenes se cargan el los cuatro ultimos botones de la
serie de veinte. Yo quiero que se carguen en los cuatro primeros y si
fueran cinco imagenes , que se carguen en los primeros cinco botones. El
caso es que se cargan en los cuatro ultimos botones de la serie, y no se
porque. Bueno espero me entiendas. Gracias

Fernando





muchas gracias, probare alguna de estas soluciones. Pense que habia una
forma de tener los controles ordenados.
Gracias

Fernando
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida