Título: Bucle for que se incremente una variable Publicado por: aspiazu en 15 Mayo 2016, 21:54 pm Buenaas
Tengo 17 picture box y 17 variables que se llaman b1..b2..b3..b17.Las variables cuando pulsas ciertos botones empiezan a valer 1. Necesito un bucle que compruebe si las variables valen 1 ,y en caso que valga 1 cambie la imagen del picture box. He probado algo asi pero no lo consigo.Lo de me.controls solo funciona para los controles. Citar For i As Integer = 1 To 15 If (Me.Controls("b" & i) = 1) Then PictureBox2.Image = My.Resources.rojo cont = cont + 1 End If Tengo que conseguir que en bucle la variable b valla aumentando y el picturebox valla cambiando el numero del final. Título: Re: Bucle for que se incremente una variable Publicado por: fary en 16 Mayo 2016, 09:47 am Evez de usar 17 variables haz un array. Lo mismo sucede con los PictureBox, crear un array de controles.
Código
De esta manera los podrás recorrer. Código
saludos. Título: Re: Bucle for que se incremente una variable Publicado por: aspiazu en 16 Mayo 2016, 12:12 pm Poniendo PictureBox(i).Image = My.Resources.rojo me da ese fallo
Error 1 'PictureBox' es un tipo y no se puede usar como expresión. C:\Users\pbl\documents\visual studio 2010\Projects\ProyectoFinal\ProyectoFinal\Office.vb 74 17 ProyectoFinal y poniendo PictureBox2(i).Image = My.Resources.rojo Error 1 No se puede indizar la clase 'System.Windows.Forms.PictureBox' porque no tiene ninguna propiedad predeterminada. C:\Users\pbl\documents\visual studio 2010\Projects\ProyectoFinal\ProyectoFinal\Office.vb 74 17 ProyectoFinal Título: Re: Bucle for que se incremente una variable Publicado por: Eleкtro en 28 Mayo 2016, 05:52 am Evez de usar 17 variables haz un array. Lo mismo sucede con los PictureBox, crear un array de controles. Código
Pero ese Array conendrá 18 elementos, no 17, ya que en VB.NET los índices están basados en Cero. Sería así: Código
Poniendo PictureBox(i).Image = My.Resources.rojo me da ese fallo Error 1 'PictureBox' es un tipo y no se puede usar como expresión. El error se debe a que estás aplicando mal la solución que te proporcionó @Fary. PictureBox debe ser un array que contenga tus controles de tipo PictureBox. Imagino que al llamarse de la misma forma, eso te habrá llevado a la confusión. Personálmente te sugiero utilizar un diccionario para poder relacionar cada control con su respectivo valor y así simplificar la tarea: Código
Si lo quieres simplificar todavía más, puedes utilizar la propiedad PictureBox.Tag para asignar un valor Integer a cada PictureBox, y entonces solo tendrías que iterar la colección de controles: Código
Saludos. |