2012-05-20 12 views
5

Sto provando a caricare un'immagine da una cartella nella soluzione, ma ricevo solo un messaggio di errore che non è stato trovato. Cosa ho fatto di sbagliato? Il codice riportato di seguito è in MainForm.cs che si trova allo stesso livello della cartella Risorse. L'aiuto è precato! Grazie!Carica l'immagine dalla cartella in soluzione?

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

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

Dipende che tipo di applicazione è. Ad ogni modo, il percorso relativo del progetto root ('~/Resources/circle.png') è un buon inizio. :) –

risposta

5

Viene sempre utilizzato il percorso dal punto in cui si trova l'eseguibile (cartella bin). Quindi, se puoi accedervi utilizzando il percorso completo, il problema verrà risolto. Oppure puoi avere un elemento di configurazione per la cartella principale. quindi accedi come Image.FromFile(rootFolder+ "Resources/circle.png");. In ogni caso questo problema non ci sarà quando lo distribuirete.

E se si utilizza file di risorse,

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

restituirà l'immagine.

+0

Sono confuso! Devo avere sia una cartella di risorse in solution explorer sia una cartella di risorse/bin/debug/risorse!? Sembra che funzioni quando ho usato questa linea di codice: Image imageCircle = Image.FromFile ("Resources/Circle.png"); –

+0

Spero che tu abbia letto correttamente la risposta. se stai usando la seconda opzione di file di risorse va bene per te.ma se è necessario inserirlo nella cartella, utilizzare l'opzione di configurazione per memorizzare il percorso dell'applicazione o posizionare la directory delle risorse nello stesso livello dell'eseguibile quando si esegue l'applicazione –

0

Il programma viene eseguito in bin/debug (il luogo in cui tutte le dll di sono), mettere la cartella Resources lì.

+0

Ma perché non in una cartella nella soluzione? –

+0

Bene, le dll sono le cose compilate dove e una volta che il progetto è stato eseguito, viene lanciato da questi .dll - ecco dove si trova il tuo programma. Se hai intenzione di dare a qualcuno un software funzionante, non includeresti la fonte, vero? Dai i file compilati funzionanti. Ad esempio, immagina ogni volta che apri Visual Studio, per prima cosa si compila: P –

+0

Questo è solo un compito per un compito e non sarà un software funzionante al di fuori di VisualStudio, ma se lo fosse, allora capisco che una cartella a quella posizione è migliore, ma solo per alcune immagini dovrebbe funzionare dalla soluzione, ma ho anche provato a mettere una cartella come te vrote, ma ancora non riesco a trovarla !? –

12

Modifica: Fisso collegamenti interrotti

Date un'occhiata a questo MSDN article, si discute Aggiungere e modificare le risorse e quali sono le opzioni, e questo MSDN article discutendo collegati e incorporati risorse utilizzando il Resource Designer.

Project Properties Resources

quindi selezionare il file di

enter image description here

Quindi è possibile accedervi come suggerisce Madurika.

cioè

Image imageCircle = YourPojectName.Properties.Resources.YourFileNameHere; 

enter image description here

+0

Grazie per le immagini, ma per aggiungere immagini non è il problema. Il problema è farli funzionare nel codice. Ho provato questo e non funziona ancora: Image imageCircle = Universal Calculator.Properties.Resources.Circle.png; –

+0

@ 3D-kreativ Funziona se li aggiungi come ho mostrato, ho provato prima di pubblicare. Se li aggiungi nel modo in cui ti suggerisco di ottenere intellence mostrando la sua disponibilità, non hai nemmeno bisogno di usare l'estensione del file. Aggiunta un'altra immagine :) –

+0

Oggi non è la mia giornata! Qualcosa è successo, ho ricevuto qualche strano messaggio di errore, e poi ho perso tutti i miei controlli nella forma !! Ma ho avuto un backup con cui posso lavorare ora :) Quando utilizzo questa riga di codice: Image imageCircle = UniversalCalculator.Properties.Resources.Circle; Ottengo una linea rossa sotto Proprietà !? –

Problemi correlati