2012-05-20 15 views
5

Estoy intentando cargar una imagen de una carpeta en la solución, pero solo aparece un mensaje de error que dice que no se encontró. ¿Qué he hecho mal? El código siguiente está en MainForm.cs que está en el mismo nivel que la carpeta de recursos. ¡La ayuda está relacionada! ¡Gracias!¿Cargar imagen de la carpeta en la solución?

// Images 
Image imageCircle = Image.FromFile("Resources/circle.png"); 

// Set deafult picture on start 
pictureBox1.Image = imageCircle; 
+0

Depende de qué tipo de aplicación que es. De todos modos, la ruta relativa de la raíz del proyecto ('~/Resources/circle.png') es un buen comienzo. :) –

Respuesta

5

Siempre toma la ruta desde donde se encuentra el ejecutable (carpeta bin). Entonces, si puede acceder utilizando la ruta completa, el problema se resolverá. O puede tener un elemento de configuración para la carpeta raíz. luego acceda como Image.FromFile(rootFolder+ "Resources/circle.png");. De todos modos, este problema no estará allí cuando lo implemente.

Y si está utilizando el archivo de recursos,

<projectName>.Properties.Resources.<ImageName>; 

devolverá la imagen.

+0

¡Estoy confundido! ¿Debería tener una carpeta de Recursos en el explorador de soluciones y una carpeta de Recursos/bin/Debug/Resource? Parece que funciona cuando utilicé esta línea de código: Image imageCircle = Image.FromFile ("Resources/Circle.png"); –

+0

Espero que leas la respuesta correctamente. si está utilizando la segunda opción del archivo de recursos, está bien para usted.pero si necesita ubicarlo dentro de la carpeta, use la opción de configuración para almacenar la ruta de la aplicación o ponga el directorio de recursos dentro del mismo nivel de ejecutable cuando ejecute la aplicación –

0

El programa se ejecuta en bin/debug (el lugar donde todos son de .dll), poner la carpeta Resources allí.

+0

¿Pero por qué no en una carpeta en la solución? –

+0

Bueno, las dll son las cosas compiladas donde, una vez que se ejecuta el proyecto, se inicia desde estos .dll, ahí es donde está tu programa. Si va a darle a alguien un software que funcione, no incluiría la fuente, ¿verdad? Usted proporciona los archivos compilados de trabajo. Por ejemplo, imagine cada vez que abre Visual Studio, primero se compilaría a sí mismo: P –

+0

Esta es solo una tarea para una asignación y no va a ser un software que funcione fuera de VisualStudio, pero si lo fuera, entonces entiendo que una carpeta en esa ubicación es mejor, pero solo para algunas imágenes debería funcionar desde la solución, pero también he probado para poner una carpeta como vrote, ¡pero todavía no puedo encontrarla !? –

12

Editar: Fijo enlaces rotos

Tome un vistazo a este MSDN article, se analiza Adición y recursos de edición y cuáles son sus opciones, y esto MSDN article discutiendo vinculados e incrustados recursos mediante el Resource Designer.

Project Properties Resources

A continuación, seleccione el archivo de

enter image description here

A continuación, se puede acceder a ella como Madurika sugiere.

decir

Image imageCircle = YourPojectName.Properties.Resources.YourFileNameHere; 

enter image description here

+0

Gracias por las imágenes, pero agregar imágenes no es el problema. El problema es hacer que funcionen en el código. Lo he probado y todavía no funciona: Image imageCircle = Universal Calculator.Properties.Resources.Circle.png; –

+0

@ 3D-kreativ Funciona si los agrega de la manera en que lo mostré, lo probé antes de publicarlo. Si los agrega de la manera en que sugiero que obtenga Intellisense mostrando su disponibilidad, tampoco necesita usar la extensión de archivo. agregó otra imagen :) –

+0

¡Hoy no es mi día! Algo sucedió, recibí un extraño mensaje de error y luego perdí todos mis controles en el formulario. Pero tenía una copia de seguridad con la que puedo trabajar ahora :) Cuando uso esta línea de código: Image imageCircle = UniversalCalculator.Properties.Resources.Circle; ¡¿Recibo una línea roja en Propiedades ?! –

Cuestiones relacionadas