0

私は自分の問題に対する答えを探し、多くの解決策を試しましたが、解決できません

Windowsフォームアプリケーションがあり、画像ボックスに画像を動的に設定する必要があり、次のコードでこれを行うことに成功しました

    pictureBox2.Image = Image.FromFile("C:/Users/user/Documents/College Work/4th Year/Advanced Net/Projects/Game/Resources/" + Quiz1FromFile.Q1Ans + ".jpg"););

プロジェクトの場所を移動した場合に機能するように、上記のパスを変更するにはどうすればよいですか。「ゲーム」は、Windows フォーム プロジェクトの名前です。

4

2 に答える 2

1

最善の方法は、プロジェクト プロパティの設定タブにApplicationSettings を追加することです。
たとえば、このプロパティを呼び出して、"ImagePath"このプロパティをデフォルトの開発パスに設定します。

YourApplicationName.exe.Configそれを行った後、デフォルト パスの値を使用して、app.config ファイル (コンパイルすると になります) にエントリが作成されます。

<applicationSettings>
    <YourAppNamespace.Properties.Settings>
        <setting name="ImagePath" serializeAs="String">
            <value>C:/Users/user/Documents/College Work/4th ......</value>
        </setting>
    <(YourAppNamespace.Properties.Settings>
</applicationSettings>

このファイルはアプリケーションと共に配布され、デプロイ手順を使用してそのパスを変更できます。

コードでは、次を使用して構成ファイルに保存されているパスを参照できます

string imagePath = Properties.Settings.Default.ImagePath;
pictureBox2.Image = Image.FromFile(Path.Combine(imagePath, Quiz1FromFile.Q1Ans,  ".jpg"));

この方法では、アプリケーション内のイメージ フォルダーへのパスをハード コードする必要がなく、相対パスを処理する必要がありません。ターゲット マシンでこの値をイメージ ファイルのストレージに設定するだけです。

于 2013-10-25T21:22:25.837 に答える
0

2 つのことが必要です。まず、ファイル名は、実行可能ファイルの場所に関連する相対パスにする必要があります。2 つ目は、画像が実際にそこにあることを確認する必要があるということです。ビルド後のイベントを使用して、イメージを DestinationFolder パスにコピーできます。

ここを見てください。

于 2013-10-25T21:18:45.930 に答える