2012-05-20 8 views
5

解決方法のフォルダから画像を読み込もうとしていますが、見つからないというエラーメッセージだけが表示されます。私は何を間違えたのですか?以下のコードは、Resourceフォルダーと同じレベルにあるMainForm.csにあります。ヘルプはpreciateされています!ありがとう!イメージをフォルダからソリューションにロードしますか?

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

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

それがアプリケーションの種類によって異なります。とにかく、プロジェクトルートの相対パス( '〜/ Resources/circle.png')は良いスタートです。 :) –

答えて

5

実行ファイルが置かれている場所(binフォルダ)から常にパスを取得します。だから完全なパスを使ってアクセスできるなら、問題は解決されます。または、ルートフォルダの構成項目を持つことができます。 Image.FromFile(rootFolder+ "Resources/circle.png");のようにアクセスします。とにかく、この問題はあなたがそれを配備するときにはそこには存在しません。

そして、あなたは、リソースファイルを使用している場合は、

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

画像を返します。

+0

私は混乱しています!ソリューションエクスプローラにリソースフォルダとリソースフォルダ/ bin/Debug/Resourceの両方を用意する必要がありますか?私はこのコード行を使用したときに動作するようです:Image imageCircle = Image.FromFile( "Resources/Circle.png"); –

+0

あなたは答えを正しく読むことを願っています。あなたがリソースファイルを使用している場合は、2番目のオプションはあなたにとっては問題ありません。フォルダ内に配置する必要がある場合は、アプリケーションのパスを保存するために設定オプションを使用するか、アプリケーションを実行するときにリソースディレクトリを同じレベルの実行可能ファイルに入れてください。 –

0

プログラムがそこResourcesフォルダを入れ、ビン/デバッグ(すべての.dllのがある場所)で実行されます。

+0

しかし、なぜソリューションのフォルダに? –

+0

さて、DLLはコンパイルされたもので、プロジェクトが実行されると、これらの.dllから起動されます。これがプログラムの場所です。あなたが誰かに働くソフトウェアを与えるつもりなら、あなたはソースを含めないでしょうか?コンパイルされた作業ファイルを提供します。たとえば、Visual Studioを開くたびに、まずそれ自体がコンパイルされると想像してください。P –

+0

これは割り当てのためのタスクであり、VisualStudio以外で動作するソフトウェアにはなりませんが、そうであれば、その場所はより良いですが、いくつかの画像はソリューションから作業する必要がありますが、私はあなたが書いたようなフォルダを置くこともテストしましたが、まだそれを見つけることはできません! –

12

編集:固定リンク切れ

このMSDN articleを見てみましょう、それが追加と編集リソースとどのようなあなたのオプションがあり、そしてこのMSDN articleResource Designerを使用してリンクし、埋め込まれたリソースを議論について説明します。その後

Project Properties Resources

Madurikaが示唆のように、あなたがそれにアクセスすることができます

enter image description here

をあなたのファイルを選択します。

すなわち

Image imageCircle = YourPojectName.Properties.Resources.YourFileNameHere; 

enter image description here

+0

イメージをお寄せいただきありがとうございます。問題は、それらをコード内で動作させることです。私はこれをテストしたが、まだ動作していない。Image imageCircle = Universal Calculator.Properties.Resources.Circle.png; –

+0

@ 3D-kreativあなたがそれらを私が示した方法で追加すれば、私は投稿する前にテストしました。あなたが彼らのavailibilityを示すintellisenseを得ることを私が示唆するようにそれらを加えるなら、あなたはまた、ファイル拡張子を使う必要はありません。別の画像を追加しました:) –

+0

今日は私の日ではありません!何かが起こった、私はいくつかの奇妙なエラーメッセージが表示され、フォーム内のすべてのコントロールを失った!しかし私は今、私は今作業することができるバックアップを持っていた:私はこのコード行を使用する:Image imageCircle = UniversalCalculator.Properties.Resources.Circle;私はプロパティの下に赤い線を得る! –

関連する問題