entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Concatenar variable con Objeto de VB

Muy buenas, mi pregunta es la siguiente

Tengo un bucle donde recojo un campo de una base de datos con un numero aleatorio y me devuelve una URL de una imagen es decir me devuelve "Titanic.jpg", esa imagen la concateno con una ruta de un servidor de FTP y se descargar esa imagen que se llama igual directamente a un PictureBox.

La duda:

Dentro del bucle cuando recupero la imagen llamo a una funcion FTP que la va a meter en el PictureBox pero siempre la mete en el mismo entonces tengo esto pero me dice que nanai y no se si esto es muy correcto

Llamada a la función:

  For i = 0 To 2
 "Conexion a la base de datos"
                    oDataAdapter.Fill(oTabla)
                    Imagen = oTabla.Rows(0).Item(i)
                    DescargarArchivoFTP(Imagen, i+1)
                Next

Lo que recibe la Funcion

 Public Sub DescargarArchivoFTP(ByVal NombreArchivo As String, ByVal Contador as Integer)
     Dim foto As String = "PictureBox" & Contador & ".ImageLocation"
     foto = "RUTA" & remoteFile 'URL de la imagen

Cómo podría hacer para que esto fuese capaz de ir cambiando de objeto en cada pasada del for?

1 Respuesta

3votos

carlossevi Puntos63580

A ver si te he entendido bien: quieres manipular un control con nombre definido por código, es decir, que no sabes todavía el nombre del control a manipular.

Puedes hacerlo utilizando el método ControlCollection.Find() de la clase Control. Un ejemplo:

Dim id as Integer = 1 '(Por ejemplo, para el PictureBox1)
Dim pbox as Control = Me.Controls.Find("PictureBox" & id, True)
pbox.Image = Image.FromFile("...")

0voto

oskar5445 comentado

Mil Gracias¡¡

0voto

oskar5445 comentado

Vale todo parecía funcionar hasta que he encontrado un error mas, es mas complicado de lo que parecía.
Quiero llamar a un PictureBox ya creado con una String, Tengo en la parte grafica dos PictureBox
PictureBox1 y PictureBox2, pero no me permiten llamarlo con una string ej.:

Dim pbox as String = "PictureBox"+Contador
pbox.ImageLocation="RUTA"

0voto

white comentado

No puedes tratar una cadena como una clase PictureBox, intentaste hacerlo como te propuso @carlossevi?

tambien puedes obtenerlo por su nombre desde: Me.Controls :

Dim pbox As PictureBox = CType(Me.Controls("PictureBox" & Contador), PictureBox)
pbox.ImageLocation="RUTA"

0voto

carlossevi comentado

Como te dice white, no puedes confundir un String con un PictureBox. Son diferentes clases y por lo tanto tienen diferentes propiedades y métodos. Puedes buscar más información sobre POO y VB.NET para aclarar conceptos.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta